当前位置: 首页 > 知识库问答 >
问题:

多模块maven项目中量具框架与诱惑报告的集成

赵元白
2023-03-14

我使用Gauge framework进行自动测试,我想使用Allure生成报告。不幸的是,Allure没有这个适配器。我的项目由几个模块组成,每个模块都有自己的pom.xml。

Main pom.xml(片段):

    <modules>
        <module>libs/common</module>
        <module>tests/panda-api</module>
        <module>tests/dbus-api</module>
    </modules>    
    <dependencies>
        <dependency>
            <groupId>com.thoughtworks.gauge</groupId>
            <artifactId>gauge-java</artifactId>
            <version>0.6.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>    
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <allure.version>1.5.0.RC2</allure.version>
    <aspectj.version>1.8.5</aspectj.version>
</properties>
<dependencies>
    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-junit-adaptor</artifactId>
        <version>${allure.version}</version>
    </dependency>
    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-bundle</artifactId>
        <version>${allure.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.0</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>${aspectj.version}</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>com.thoughtworks.gauge.maven</groupId>
            <artifactId>gauge-maven-plugin</artifactId>
            <version>1.1.0</version>
            <executions>
                <execution>
                    <phase>test</phase>
                    <configuration>
                        <specsDir>specs</specsDir>
                    </configuration>
                    <goals>
                        <goal>execute</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19</version>
            <configuration>
                <testFailureIgnore>false</testFailureIgnore>
                <argLine>
                    -Xmx1600m -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                </argLine>
                <properties>
                    <property>
                        <name>listener</name>
                        <value>ru.yandex.qatools.allure.junit.AllureRunListener</value>
                    </property>
                </properties>
            </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>
                <inputDirectories>${project.basedir}/reports/xml-report</inputDirectories>
                <resultsDirectory>allure-results</resultsDirectory>
                <reportDirectory>allure-report</reportDirectory>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>9.2.10.v20150310</version>
            <configuration>
                <webAppSourceDirectory>${project.build.directory}/site/allure-maven-plugin</webAppSourceDirectory>
                <stopKey>stop</stopKey>
                <stopPort>1234</stopPort>
                <httpConnector>
                    <port>8090</port>
                </httpConnector>
            </configuration>
        </plugin>
    </plugins>
</build>
<reporting>
    <excludeDefaults>true</excludeDefaults>
    <plugins>
        <plugin>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-maven</artifactId>
            <version>2.8</version>
            <configuration>
                <resultsDirectory>allure-results</resultsDirectory>
                <reportDirectory>allure-report</reportDirectory>
            </configuration>
        </plugin>
    </plugins>
</reporting>
$ mvn clean compile test-compile
$ mvn install -f libs/common/pom.xml
$ mvn gauge:execute -f tests/panda-api/pom.xml -Denv=test -DspecsDir=specs

仪表以JUnit XML模式格式将自己XML报表生成为'reports/XML-report/result.XML'。Allure生成一个空报告到'ALLURE-REPORT',因为allure-results没有生成.如何生成基于标尺xml-result的诱惑报告?

共有1个答案

徐隐水
2023-03-14

Allure只接受名称匹配test-*.XMLglob的JUnit XML文件(相关问题https://github.com/allure-framework/allure2/issues/542)。只需将文件重命名为test-results.xml即可解决问题。

 类似资料:
  • 背景资料: Maven版本:3.2.5 Java版本:1.8 cucumber报告版本:3.8.0 我有一个多模块maven java项目。我有cucumber测试和maven cucumber reporting插件,为每个模块运行和工作。 问题:我想在所有子模块构建完成后,生成一个包含所有cucumber.json文件的大型报告。 我可以吗: 在所有子模块构建和测试(创建cucumber.js

  • 我遵循以下步骤在詹金斯得到诱惑报告,但得到错误,我能够得到本地报告 1.增加了诱惑力命令行安装(图1) 2.增加了建造后的动作诱惑力-结果(图2) [Project-Allure]$C:\Windows\System32\Config\SystemProfile\AppData\Local\Jenkins.Jenkins\Tools\ru.yandex.qatools.allure.Jenkins

  • 我已经成功地将诱惑报告集成到我基于Maven的testNG项目中,并且成功地生成了报告,我可以通过运行jetty服务器和查看本地主机来查看该报告。因此,生成的xml报告位于主项目文件夹中。 现在我正在将jenkins与我的测试项目集成,现在我可以从jenkins构建项目,但无法在jenkins中看到诱惑报告。我尝试将allure report插件添加到我的jenkins中,但我想我缺少了allur

  • 我开始使用Allure和Python Behave对中等规模的C++服务生态系统进行高级BDD测试。 我得到的是Jenkins内部的一个网页,上面有漂亮清晰的报告,这要感谢Allure-Jenkins插件。

  • 我将使用诱惑报告来监控硒测试结果。我正在使用TestNG和Maven failsafe插件来运行测试。我找到了非常清晰的例子来修改pom。xml,以便在您使用Maven surefire插件时包含case的诱惑,但对Maven failsafe插件则没有。我假设配置应该非常相似,但它不适合我。这是我pom里的东西。xml: 这是我看到的错误: 任何建议都将不胜感激。我假设配置Maven故障保护插件

  • 上面的代码用于生成allure报告并运行测试,它运行并生成reports-allure-results中的一个文件夹,其中包含JSON文件。见下方截图