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上:发现错误::生成失败-检查报告以了解详细信息