Java 黄瓜JVM 3-诱惑2与Maven的测试报告

Java 黄瓜JVM 3-诱惑2与Maven的测试报告,java,maven,cucumber,cucumber-jvm,allure,Java,Maven,Cucumber,Cucumber Jvm,Allure,在最近发布的3.x.x中,除了较旧的1.x.x(),似乎没有一个可行的教程 我不确定该用哪一个 (似乎有allure-cucumber3-jvm) 预期结果: 在运行mvn test或mvn verify后,使用Maven在target/或target/site中使用Cucumber JVM 3生成Allure2测试报告 一个工作的pom.xml和@CucumberOptions很受欢迎。谢谢 更新:(2018-08-31) pom.xml <properties>

在最近发布的
3.x.x
中,除了较旧的
1.x.x
(),似乎没有一个可行的教程

我不确定该用哪一个

  • (似乎有
    allure-cucumber3-jvm
预期结果:

在运行
mvn test
mvn verify
后,使用Maven在
target/
target/site
中使用Cucumber JVM 3生成Allure2测试报告

一个工作的
pom.xml
@CucumberOptions
很受欢迎。谢谢


更新:(2018-08-31) pom.xml

<properties>
    <!-- Project -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <app.name>Simply Do - Balance Projector</app.name>
    <!-- Maven -->
    <timestamp>${maven.build.timestamp}</timestamp>
    <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
    <!-- Allure Test Report -->
    <aspectj.version>1.9.1</aspectj.version>
    <!-- Core Dependencies -->
    <selenium.version>3.14.0</selenium.version>
    <ngwebdriver.version>1.1.4</ngwebdriver.version>
    <cucumber.version>3.0.2</cucumber.version>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server -->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>${selenium.version}</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.paulhammant/ngwebdriver -->
    <dependency>
        <groupId>com.paulhammant</groupId>
        <artifactId>ngwebdriver</artifactId>
        <version>${ngwebdriver.version}</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-picocontainer -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-picocontainer</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.assertj/assertj-core -->
    <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>3.11.0</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.11.1</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-cucumber3-jvm -->
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-cucumber3-jvm</artifactId>
        <version>2.7.0</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.13</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.17</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.codoid.products/fillo -->
    <dependency>
        <groupId>com.codoid.products</groupId>
        <artifactId>fillo</artifactId>
        <version>1.18</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-site-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.7.1</version>
        </plugin>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-project-info-reports-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
            <version>3.0.0</version>
        </plugin>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-jar-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.0</version>
            <!-- Ignore src/main in JAR packaging -->
            <configuration>
                <classesDirectory>src</classesDirectory>
                <excludes>
                    <exclude>main</exclude>
                </excludes>
            </configuration>
        </plugin>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.0</version>
            <configuration>
                <includes>
                    <include>**/RunCukesTest.java</include>
                </includes>
                <testFailureIgnore>true</testFailureIgnore>
                <reportsDirectory>${project.build.directory}/test-output/${timestamp}</reportsDirectory>
                <argLine>
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                </argLine>
            </configuration>
            <dependencies>
                <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjweaver</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
        </plugin>
        <!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-maven -->
        <plugin>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-maven</artifactId>
            <version>2.9</version>
            <configuration>
                <reportVersion>2.7.0</reportVersion>
                <allureDownloadUrl>https://github.com/allure-framework/allure2/releases/download/2.7.0/allure-2.7.0.zip</allureDownloadUrl>
            </configuration>
        </plugin>
        <!-- https://mvnrepository.com/artifact/net.masterthought/maven-cucumber-reporting -->
        <plugin>
            <groupId>net.masterthought</groupId>
            <artifactId>maven-cucumber-reporting</artifactId>
            <version>3.20.0</version>
            <executions>
                <execution>
                    <id>execution</id>
                    <phase>verify</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <projectName>${app.name}</projectName>
                        <outputDirectory>${project.build.directory}</outputDirectory>
                        <jsonFiles>
                            <param>**/cucumber-report.json</param>
                        </jsonFiles>
                        <classificationFiles>
                            <param>**/classifications/*.properties</param>
                        </classificationFiles>
                        <parallelTesting>false</parallelTesting>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

UTF-8

由于Cucumber API的重大变化,对于Cucumber JVM的不同版本,您将需要不同的诱惑适配器:

  • Cucumber JVM 1.x require,格式化程序
    io.qameta.allure.cucumberjvm.allure.JVM
  • CucumberJVM2.x require,格式化程序
    io.qameta.allure.cucumber2jvm.allu2JVM
  • Cucumber JVM 3.x require,格式化程序
    io.qameta.allure.cucumber3jvm.allu3JVM
  • Cucumber JVM 4.x require,格式化程序
    io.qameta.allure.cucumber4jvm.allu4JVM
  • allure maven
    插件负责生成报告,可与上述任何适配器一起使用

    更新: 我在这里创建了一个使用Cucumber JVM 3.x+Allure 2+Maven的示例项目:

    您可以直接运行测试并提供报告

    $ mvn clean test allure:serve
    
    或者执行测试,只构建报告而不打开它

    $ mvn clean test allure:report
    ...
    $ ls -l target/site/allure-maven-plugin/
    total 4744
    -rw-r--r--   1 user  CORP\Domain Users     2220 Aug 29 12:49 allure-maven.html
    -rw-r--r--   1 user  CORP\Domain Users   726434 Aug 29 12:49 app.js
    drwxr-xr-x  12 user  CORP\Domain Users      384 Aug 29 12:49 data
    drwxr-xr-x   5 user  CORP\Domain Users      160 Aug 29 12:49 export
    -rw-r--r--   1 user  CORP\Domain Users    15086 Aug 29 12:49 favicon.ico
    drwxr-xr-x   7 user  CORP\Domain Users      224 Aug 29 12:49 history
    -rw-r--r--   1 user  CORP\Domain Users      657 Aug 29 12:49 index.html
    drwxr-xr-x   9 user  CORP\Domain Users      288 Aug 29 12:49 plugins
    -rw-r--r--   1 user  CORP\Domain Users  1673197 Aug 29 12:49 styles.css
    drwxr-xr-x  16 user  CORP\Domain Users      512 Aug 29 12:49 widgets
    

    嘿,西尔弗,当然。我已经在github中创建了一个示例项目,并添加了一个链接来回答这个问题。需要注意的重要事项:
    pom.xml
    src/test/resources/allure.properties
    CucumberTest
    runner classAllure的Bintray存储库出现问题。目前,解决方法是使用
    alluremaven
    插件的
    configuration
    块中的
    allureDownloadUrl
    属性指定替代下载链接。我用示例更新了GitHub上的示例项目。您可以使用GitHub工件
    https://github.com/allure-framework/allure2/releases/download/2.7.0/allure-2.7.0.zip
    或主机
    allure-2.7.0.zip
    服务器上的某个位置,并将该链接放入
    allure maven
    configuration问题是,maven出于某种原因忽略了tesFailureIgnore属性并使构建失败。我现在不在办公室,明天早上可以看一下。好吧,问题是如果测试中出现任何失败,那么
    maven cucumber reporting
    插件就会导致构建失败,而这是在执行诱惑目标之前发生的。您可以删除此插件-因为您为什么还需要两个报告-或者您需要找到一种方法来配置此
    maven cucumber reports
    以避免构建失败此错误发生:
    无法执行目标网。主思想:maven cucumber reporting:3.20.0:生成(执行)在项目jcucumberng framework上:发现错误::生成失败-检查报告以了解详细信息