Как сгенерировать Allure xml при запуске проекта как TestNG Suite в eclipse?

Я гуглил об этом вопросе. Результаты, которые я нашел, показали, что мне нужно запустить сборку maven/ant для создания xml.

Мой проект - это проект Maven & TestNG. Но во время отладки мы используем опцию «Запустить как TestNG Suite» в eclipse.

Я добавил следующий код в свой testng.xml.

<listeners>
    <listener class-name="ru.yandex.qatools.allure.testng.AllureTestListener" />
</listeners>

Это создает UUID-testsuite.xml в каталоге project\target\site\allure-maven-plugin\data, но отчет содержит только название пакета, и никакие другие данные не отображаются.

Я понимаю, что для того, чтобы аннотации @Step и @Attachment работали, нам нужно правильно включить AspectJ в конфигурации. Я не уверен, как это сделать в файле testng.xml.

Пожалуйста, дайте мне знать, если я что-то пропустил здесь.


person Vel Ganesh    schedule 22.05.2015    source источник


Ответы (1)


Предполагая, что в вашем тестовом коде определены методы @Step и @Attachment, вам просто нужно добавить зависимость aspectjweaver в файл pom.xml. Обратитесь к этой вики-странице на github Allure.

<build>
    <plugins>
        <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>
                <!--only for 1.3.* TestNG adapters. Since 1.4.0.RC4, the listener adds via ServiceLoader-->
                <properties>
                    <property>
                        <name>listener</name>
                        <value>ru.yandex.qatools.allure.testng.AllureTestListener</value>
                    </property>
                </properties>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjweaver</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

maven-surefire-plugin вызовет testng с listener

<properties>
   <property>
      <name>listener</name>
      <value>ru.yandex.qatools.allure.testng.AllureTestListener</value>
   </property>
</properties>

И передайте настройки аспекта в качестве аргумента jvm:

- javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar

Также вы можете обратиться к этому примеру проекта для большей ясности.

person parishodak    schedule 13.01.2016