在Allure2

时间:2018-05-28 21:00:58

标签: java groovy allure

我正在尝试将Allure2作为我们自动化套件的报告工具,但我似乎遇到了@Step注释的问题。

我有导入到位,IDE完全识别它,我可以在依赖项下看到包,并且特定类可用于浏览,一切似乎都是正确的但是当我尝试运行测试时,我收到此错误:

java.lang.NoSuchMethodError: io.qameta.allure.aspects.StepsAspects.aspectOf()Lio/qameta/allure/aspects/StepsAspects;

如果删除@Step注释,一切都会完美运行,包括报告。

在我所能找到的所有内容上搜索,这个问题在测试期间似乎已经解决了,我现在使用的是最新版本。我也在另一个项目中实现了它,并且它在相同的版本中运行良好,但即使在搜索了两个pom.xml文件之后,我也无法弄清楚我可能会搞砸的地方。

以下是我的pom设置的相关位。

<properties>
    <!--DEPENDENCIES VERSIONS-->
    <allure2.version>2.6.0</allure2.version>
    <allure.maven.version>2.9</allure.maven.version>
    <maven.surefire.plugin.version>2.19.1</maven.surefire.plugin.version>
    <aspectj.version>1.9.1</aspectj.version>
</properties>

    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-testng</artifactId>
        <version>${allure2.version}</version>
    </dependency>
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-maven</artifactId>
        <version>${allure.maven.version}</version>
        <exclusions>
            <exclusion>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
            </exclusion>
        </exclusions>
    </dependency>


        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven.surefire.plugin.version}</version>
            <configuration>
                <testFailureIgnore>true</testFailureIgnore>
                <systemPropertyVariables>
                    <allure.directory>${project.build.directory}/allure-results</allure.directory>
                    <allure.results.directory>${project.build.directory}/allure-results</allure.results.directory>
                </systemPropertyVariables>
                <suiteXmlFiles>
                    <suiteXmlFile>testng-run.xml</suiteXmlFile>
                </suiteXmlFiles>
                <argLine>
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                </argLine>
            </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>${allure.maven.version}</version>
            <configuration>
                <properties>
                    <allure.issues.tracker.pattern>######################</allure.issues.tracker.pattern>
                    <allure.tests.management.pattern>#######################</allure.tests.management.pattern>
                </properties>
            </configuration>
        </plugin>

我不认为在两个地方指定allure-maven依赖关系是必要的。只是为了排除它我只尝试在插件部分和同样的问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可能正在使用自定义aop.xml配置文件,这些文件将Allure方面排除在编织之外。确保weaver配置中包含io.qameta.allure