设置步骤和附件
Setting up steps and attachments
我正在尝试为我们的集成测试设置 allure2,但有些事情进展不顺利。
TestNG 侦听器工作正常,因为正在填充 allure-results 文件夹。 @Step 和@Attachment 等注释不起作用。
与 https://github.com/allure-examples/allure-testng-example 中的示例存在相同的问题。
pom.xml的重要部分:
<dependencies> <dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>2.0-BETA14</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.6</version>
</dependency>
<dependencies>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<argLine>
-
javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<groups>${groups}</groups>
<excludedGroups>${excludedGroups}</excludedGroups>
<properties>
<property>
<name>listener</name>
<value>
net.sprd.qa.webdriver.listener.ScreenshotListener,net.sprd.qa.common.listeners.TestPrinterListener,net.sprd.qa.cyo.listeners.Transformer,net.sprd.qa.common.listeners.JiraListener,net.sprd.qa.webdriver.listener.SlackListener,
</value>
</property>
<property>
<name>configfailurepolicy</name>
<value>continue</value>
</property>
<property>
<name>dataproviderthreadcount</name>
<value>${dataProviderthreadCount}</value>
</property>
</properties>
<systemPropertiesFile>
${propertiesFile}
</systemPropertiesFile>
<disableXmlReport>false</disableXmlReport>
<reportsDirectory>target/surefire-reports</reportsDirectory>
<parallel>methods</parallel>
<threadCount>${threadCount}</threadCount>
<forkCount>0</forkCount>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.8</version>
<configuration>
<resultsDirectory>../allure-results</resultsDirectory>
</configuration>
</plugin>
</plugins>
正确传递了 jvm 参数并且路径实际上指向我的 aspectjweaver jar。
问题:
- 我只看到所有示例中都使用了 surefire 插件。会不会是这个原因?
- 我该如何进一步调试?
- 我可以不同地设置我的 pom 来防止这个问题吗?例如以不同方式加载 aspectj 依赖项。
问题是当 forkCount
为 0 时 argLine
不适用。
如果您真的需要禁用分叉,有两种方法可以解决该问题:
- 在
MAVEN_OPTS
中配置 AspectJ Weaver。在这种情况下,将编织所有 maven 代码,因此您可能需要添加额外的 aop.xml
并指定需要编织的 classes/packages。
- 使用 AspectJ 编译器插件而不是 weaver。
我正在尝试为我们的集成测试设置 allure2,但有些事情进展不顺利。
TestNG 侦听器工作正常,因为正在填充 allure-results 文件夹。 @Step 和@Attachment 等注释不起作用。
与 https://github.com/allure-examples/allure-testng-example 中的示例存在相同的问题。
pom.xml的重要部分:
<dependencies> <dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>2.0-BETA14</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.6</version>
</dependency>
<dependencies>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<argLine>
-
javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<groups>${groups}</groups>
<excludedGroups>${excludedGroups}</excludedGroups>
<properties>
<property>
<name>listener</name>
<value>
net.sprd.qa.webdriver.listener.ScreenshotListener,net.sprd.qa.common.listeners.TestPrinterListener,net.sprd.qa.cyo.listeners.Transformer,net.sprd.qa.common.listeners.JiraListener,net.sprd.qa.webdriver.listener.SlackListener,
</value>
</property>
<property>
<name>configfailurepolicy</name>
<value>continue</value>
</property>
<property>
<name>dataproviderthreadcount</name>
<value>${dataProviderthreadCount}</value>
</property>
</properties>
<systemPropertiesFile>
${propertiesFile}
</systemPropertiesFile>
<disableXmlReport>false</disableXmlReport>
<reportsDirectory>target/surefire-reports</reportsDirectory>
<parallel>methods</parallel>
<threadCount>${threadCount}</threadCount>
<forkCount>0</forkCount>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.8</version>
<configuration>
<resultsDirectory>../allure-results</resultsDirectory>
</configuration>
</plugin>
</plugins>
正确传递了 jvm 参数并且路径实际上指向我的 aspectjweaver jar。
问题:
- 我只看到所有示例中都使用了 surefire 插件。会不会是这个原因?
- 我该如何进一步调试?
- 我可以不同地设置我的 pom 来防止这个问题吗?例如以不同方式加载 aspectj 依赖项。
问题是当 forkCount
为 0 时 argLine
不适用。
如果您真的需要禁用分叉,有两种方法可以解决该问题:
- 在
MAVEN_OPTS
中配置 AspectJ Weaver。在这种情况下,将编织所有 maven 代码,因此您可能需要添加额外的aop.xml
并指定需要编织的 classes/packages。 - 使用 AspectJ 编译器插件而不是 weaver。