2017-07-31 70 views
1

我正在尝试为我们的集成测试设置allure2,但有些事情进展不顺利。设置步骤和附件

TestNG监听器工作正常,因为魅力结果文件夹正在被填满。像@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罐子。

问题:

  • 我只看到在所有的示例中使用万无一失插件。这可能是原因吗?
  • 我应该如何进一步调试?
  • 我可以设置我的pom以防止出现此问题吗?例如,以不同的方式加载aspectj依赖。

回答

2

的问题是,当forkCount为0

如果你真的需要禁用分叉有两种方法来解决这个问题argLine不适用:

  1. 配置AspectJ的韦弗在MAVEN_OPTS 。在这种情况下,所有的Maven代码将被编织,因此您可能需要额外添加aop.xml并指定需要编织的类/包。
  2. 使用AspectJ编译器插件而不是编织器。