Automatically build allure report after test completion

浪子不回头ぞ 提交于 2019-12-10 23:34:13

问题


I am trying to figure out how to automatically build the allure report after my TestNG suite has completed. I know its possible to create the report by running mvn site manually after the test, but it would be great if it was possible for the reports to be automatically be generated. Below is the allure config from my pom.xml

                <properties>
                  <testng.congig>${selenium.suite}</testng.congig>
                  <aspectj.version>1.7.4</aspectj.version>
                  <allure.version>1.4.3</allure.version>
                </properties>

              <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>
                    <suiteXmlFiles>
                        <suiteXmlFile>target\test-classes\${testng.congig}</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                </dependencies>
            </plugin>

            <dependency>
              <groupId>ru.yandex.qatools.allure</groupId>
              <artifactId>allure-testng-adaptor</artifactId>
              <version>${allure.version}</version>
           </dependency>

           <reporting>
             <excludeDefaults>false</excludeDefaults>
             <plugins>
              <plugin>
                 <groupId>ru.yandex.qatools.allure</groupId>
                 <artifactId>allure-maven-plugin</artifactId>
                 <version>{latest.version}</version>
               </plugin>
             </plugins>
           </reporting>

回答1:


The test execution and site generation run in a different life cycle.

The default lifecycle differs from the site lifecycle, see https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

What you can do is just chain the commands: e.g. mvn install site or mvn deploy site-deploy if you plan to make the site available somewhere. This will run the tests and then execute a site generation.

The maven goals relate to a phase in that lifecycle. mvn package will execute all plugins bound to one of the phases until package phase. Since site generation has its own lifecycle I would not bind the plugin execution to one of the phases of the default lifecycle. Reporting plugins often rely on a finished build.




回答2:


Step 1. Add dependencies Allure Builder Reporter into pom.xml https://mvnrepository.com/artifact/ru.yandex.qatools.allure/allure-report-builder/2.1

Step 2: Add this code:

// It will generate the Allure Report folder.
  new AllureReportBuilder("1.5.4", new File("target/allure-report")).unpackFace();
  new AllureReportBuilder("1.5.4", new File("target/allure-report")).processResults(new 
  File("target/allure-results"));


来源:https://stackoverflow.com/questions/31511955/automatically-build-allure-report-after-test-completion

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!