当 运行 在 eclipse 中作为 TestNG Suite 项目时如何生成 Allure xml?
How to generate Allure xml when running project as TestNG Suite in eclipse?
我用谷歌搜索了这个问题。我发现的结果表明我需要 运行 一个 maven/ant 构建来生成 xml.
我的项目是 Maven & TestNG 项目。但是在调试时我们在 eclipse 中使用选项 'Run as TestNG Suite'。
我已将以下代码添加到我的 testng.xml。
<listeners>
<listener class-name="ru.yandex.qatools.allure.testng.AllureTestListener" />
</listeners>
这会在 project\target\site\allure-maven-plugin\data 目录中生成 UUID-testsuite.xml,但报告仅包含套件标题,不会显示其他数据。
我了解到,为了使@Step 和@Attachment 注释起作用,我们需要在配置中正确启用AspectJ。我不确定如何在 testng.xml 文件中执行此操作。
如果我遗漏了什么,请告诉我。
假设您在测试代码中定义了@Step 和@Attachment 方法,您只需要在pom.xml 文件中添加aspectjweaver 依赖项。参考这个倾城 github wiki page
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<testFailureIgnore>false</testFailureIgnore>
<argLine>
-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
</argLine>
<!--only for 1.3.* TestNG adapters. Since 1.4.0.RC4, the listener adds via ServiceLoader-->
<properties>
<property>
<name>listener</name>
<value>ru.yandex.qatools.allure.testng.AllureTestListener</value>
</property>
</properties>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
maven-surefire-plugin 将使用 listener
调用 testng
<properties>
<property>
<name>listener</name>
<value>ru.yandex.qatools.allure.testng.AllureTestListener</value>
</property>
</properties>
并将 aspectj 设置作为 jvm 参数传递:
- javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
您还可以参考此 example project 以更加清楚。
我用谷歌搜索了这个问题。我发现的结果表明我需要 运行 一个 maven/ant 构建来生成 xml.
我的项目是 Maven & TestNG 项目。但是在调试时我们在 eclipse 中使用选项 'Run as TestNG Suite'。
我已将以下代码添加到我的 testng.xml。
<listeners>
<listener class-name="ru.yandex.qatools.allure.testng.AllureTestListener" />
</listeners>
这会在 project\target\site\allure-maven-plugin\data 目录中生成 UUID-testsuite.xml,但报告仅包含套件标题,不会显示其他数据。
我了解到,为了使@Step 和@Attachment 注释起作用,我们需要在配置中正确启用AspectJ。我不确定如何在 testng.xml 文件中执行此操作。
如果我遗漏了什么,请告诉我。
假设您在测试代码中定义了@Step 和@Attachment 方法,您只需要在pom.xml 文件中添加aspectjweaver 依赖项。参考这个倾城 github wiki page
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<testFailureIgnore>false</testFailureIgnore>
<argLine>
-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
</argLine>
<!--only for 1.3.* TestNG adapters. Since 1.4.0.RC4, the listener adds via ServiceLoader-->
<properties>
<property>
<name>listener</name>
<value>ru.yandex.qatools.allure.testng.AllureTestListener</value>
</property>
</properties>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
maven-surefire-plugin 将使用 listener
<properties>
<property>
<name>listener</name>
<value>ru.yandex.qatools.allure.testng.AllureTestListener</value>
</property>
</properties>
并将 aspectj 设置作为 jvm 参数传递:
- javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
您还可以参考此 example project 以更加清楚。