这个问题通常是由于测试运行期间没有正确设置Allure的触发器状态造成的。您可以在测试代码中添加以下代码来设置触发器状态:
import io.qameta.allure.Step;
import io.qameta.allure.model.Status;
@Step("My test step")
public void myTestStep() {
// your test code here
if (/* some condition that should cause a warning */) {
Allure.getLifecycle().updateTestCase(testResult -> testResult.setStatus(Status.BROKEN));
}
}
在上述示例中,你可以根据你的测试需要使用不同的Status
来设置触发器状态。这些包括:
Status.PASSED
:测试成功。Status.FAILED
:测试失败。Status.SKIPPED
:测试被跳过。Status.BROKEN
:测试以非预期的方式中断。你还可以添加另一个updateTestCase
来添加额外的信息,例如:
Allure.getLifecycle().updateTestCase(testResult -> {
testResult.setStatus(Status.BROKEN);
testResult.setDescriptionHtml("This test failed because of...");
});
这将在Allure报告中添加一个HTML格式的描述。记得在测试代码任何可能抛出异常的地方添加try-catch块,将异常捕获并将触发器状态设置为Status.BROKEN
以确保不会漏掉任何异常。