当步骤失败时使用Allure报告框架,我们可以通过使用@Attachment注释调用方法来附加屏幕截图或日志。
@Attachment(value = "Message", type = "text/plain")
public String attachLog(){
return "Hello, Test failed!";
}
但这意味着我必须在断言之前的每一步中显式调用此方法(attachLog())。这似乎是不合理的。
在CucumberJvm中,“after”挂钩是附加屏幕截图或日志的好方法。我们通过检查方案状态并根据结果附加屏幕截图/日志来完成此操作。
我尝试在cucumberJvm“after”hook之后调用上面的方法(attachLog())。但不幸的是没有用。
是否有解决方案使这项工作?
干杯 维诺德
答案 0 :(得分:0)
您可以从ru.yandex.qatools.allure.cucumberjvm.AllureRunListener
public class CustomAllureListener extends AllureRunListener {
@Override
public void testFailure(Failure failure) {
super.testFailure(failure);
if (!failure.getDescription().isSuite()) { // check is needed to avoid double attaching
attachFailed();
}
}
@Attachment(value = "Message", type = "text/plain")
public String attachFailed(){
return "Test failed!";
}
}
不要忘记更改pom.xml
档案
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<testFailureIgnore>false</testFailureIgnore>
<argLine>
-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
</argLine>
<properties>
<property>
<name>listener</name>
<value>com.mycompany.testing.CustomAllureListener</value>
</property>
</properties>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>