基本上我想在我的范围报告中添加一个“跳过测试”条目。我知道我可以使用@AfterEach,但是我看到 @AfterEach 代码块没有在 Junit5 中为@Disabled Test 执行。
我尝试使用 TestWatcher 接口并覆盖了 testDisabled 方法,如下所示:
package utils;
import java.util.Optional;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.TestWatcher;
public class MyTestWatcher implements TestWatcher {
public static String testStatus;
public static String testCaseName;
@Override
public void testAborted(ExtensionContext Context, Throwable throwable) {
testStatus = "Aborted";
testCaseName = Context.getDisplayName();
System.out.println("Test Aborted: " + Context.getDisplayName());
}
@Override
public void testDisabled(ExtensionContext Context, Optional<String> optional) {
testStatus = "Skipped";
testCaseName = Context.getDisplayName();
System.out.println("Test Skipped: " + Context.getDisplayName());
}
@Override
public void testFailed(ExtensionContext Context, Throwable throwable) {
testStatus = "Failed";
testCaseName = Context.getDisplayName();
System.out.println("Test Failed: " + Context.getDisplayName());
}
@Override
public void testSuccessful(ExtensionContext Context) {
testStatus = "Passed";
testCaseName = Context.getDisplayName();
System.out.println("Test Passed: " + Context.getDisplayName());
}
}
基于上面 testDisabled() 方法中设置的“testStatus”和“testCaseName”变量,我想从我的测试类运行一段代码,在我的范围报告中添加一个条目,说明哪个测试用例是跳过。