Donnerstag, Juni 4, 2020

Wie laufen die Gurke-test unter Verwendung von gradle

Ich habe Probleme beim ausführen von Cucumber-tests in der Gradle. Ich bin mit cucumber-jvm.

Klasse TestNGCucumberRunner erweitert die AbstractTestNGCucumberTests und testng annotations mit @beforesuite, @aftersuite..

Ich in der Regel laufen die TestNGCucumberRunner.java im IntelliJ, indem Sie mit der rechten Maustaste und es läuft erfolgreich. Jetzt will ich

  1. Aufrufen TestNGCucumberRunner.java in gradle

oder

  1. Invoke alle features von gradle

Habe ich versucht zu führen TestNGCucumberRunner.java als javaexec aber das schlägt fehl.

Habe ich versucht auszuführen, alle feature-Dateien im Paket. Ich habe verwendet apply plugin: 'com.github.samueltbrown.cucumber' auch.

  • Unten ist die Projekt-Struktur ist Dies der Ordner Struktur, wo die scripts-src-test-java-ctest-sampletest,TestNGCucumberRunner src-test-java-cpage-loginpage src-test-Ressourcen-navigation.feature
  • Konnte Sie Bearbeiten und veröffentlichen einige Ihrer build.gradle-Datei?
  • Haben Sie schon einen Blick auf dieses github.com/cucumber/cucumber-jvm/blob/master/examples/…
  • Danke für die Antwort :), ich habe extrahiert die oben genannten Beispiele, und es ist in Ordnung, und implementieren die gleichen, von Anfang an.Ich werde es tun, und lassen Sie das Ergebnis wissen .Noch einmal vielen Dank
InformationsquelleAutor user3350712 | 2015-02-07

3 Kommentare

  1. 9

    UPDATE:

    Meine neue setup verwendet eine andere plugin unterstützt die parallele Ausführung von Szenarien, bessere Berichterstattung, und wird noch aktiv gepflegt:

    bauen.gradle

    plugins {
      ...
      id "com.commercehub.cucumber-jvm" version "0.11"
    }
    
    addCucumberSuite 'cucumberTest'
    
    dependencies {
      ...
      cucumberTestCompile 'info.cukes:cucumber-java:1.2.5'  //or -java8 if you prefer lambda notation
    
    }

    directory-Struktur:

    └── src
        ├── cucumberTest
           ├── java
              └── package1 
                   └──       <- Glue
           └── resources    
               └── package2 
                   └──       <- Features
        ├── main
           └── java
        └── test
            └── java

    package1 und package2 Namen (zusammen mit vielen anderen Optionen) kann angegeben werden, in dem Aufbau.gradle-Datei


    ALTEN

    Meine vorherigen – setup für die Verwendung von Gurken für java, mit gradle.

    bauen.gradle

    plugins {
        id "java"
        id "com.github.samueltbrown.cucumber" version "0.9"
      }   
    
    dependencies {
        cucumberCompile 'info.cukes:cucumber-java:1.2.4'
    }
    
    cucumber {
        formats = ['pretty','junit:build/cucumber.xml']
    }

    Verzeichnis-layout

    └── src
        ├── cucumber
           ├── java         <- Glue
           └── resources    <- Features
        └── main
            └── java
        └── test
            └── java

    Befehl

    gradle cucumber
  2. 4

    Entschied ich mich für die nicht-Verwendung com.github.samueltbrown.cucumberplugin, es wurde zuletzt aktualisiert im August 2015. Stattdessen erstellte ich ein „integrationTest“ (Gurke) sourceSet, dass ich bauen kann, unabhängig. I. e, eine einfache gradle build bauen test und integrationTest Quelle setzt. Wenn ich nur ausführen möchten, integration tests, die ich laufen kann gradle integrationTest -x test oder ich kann laufen, nur zum testen mit gradle test -x integrationTest.

    Die Schritte, die ich gefolgt sind hier: http://www.petrikainulainen.net/programming/gradle/getting-started-with-gradle-integration-testing/

    Aber hier ist die Zusammenfassung:

    bauen.gradle

    sourceSets {
        integrationTest {
            java {
                compileClasspath += main.output + test.output
                runtimeClasspath += main.output + test.output
                srcDir file('src/integrationTest/java')
            }
            resources.srcDir file('src/integrationTest/resources')
        }
    }
    
    //Ensure that the integrationTestCompile/integrationTestRuntime configuration contains the dependencies that are required to compile/run our unit tests.
    configurations {
        integrationTestCompile.extendsFrom testCompile
        integrationTestRuntime.extendsFrom testRuntime
    }
    
    task integrationTest(type: Test) {
        testClassesDir = sourceSets.integrationTest.output.classesDir
        classpath = sourceSets.integrationTest.runtimeClasspath
    
        //Gradle skips tasks whose input and output are up to date.
        //To ensure that your integration tests are run every time,
        //tell Gradle that the outputs of the integrationTest task should always be considered out of date.
        outputs.upToDateWhen { false }
    }
    
    //Ensure that our integration tests are run before the check task and that the check task fails the build if there are failing integration tests.
    //Ensure that our unit tests are run before our integration tests. This guarantees that our unit tests are run even if our integration tests fails.
    check.dependsOn integrationTest
    integrationTest.mustRunAfter test
    
    //Ensure that the HTML reports of unit and integration tests are created to different report
    //build/reports/integrationTest directory contains the HTML report that contains the test results of our integration tests.
    tasks.withType(Test) {
        reports.html.destination = file("${reporting.baseDir}/${name}")
    }
    
    def cucumberVersion = "1.2.4"
    
    dependencies {
        integrationTestCompile(
                'info.cukes:cucumber-core:' + cucumberVersion,
                'info.cukes:cucumber-java:' + cucumberVersion,
                'info.cukes:cucumber-java:' + cucumberVersion,
                'info.cukes:cucumber-junit:' + cucumberVersion,
                'info.cukes:cucumber-spring:' + cucumberVersion,
                'org.springframework:spring-beans:4.2.5.RELEASE'
        )
        integrationTestRuntime(
                'org.springframework:spring-context:4.2.5.RELEASE',
                'org.springframework:spring-test:4.2.5.RELEASE',
                'org.springframework:spring-tx:4.2.5.RELEASE'
        )
    }

Kostenlose Online-Tests