我目前正在使用Spring TestExecutionListener来处理我的测试类中的自定义注释。根据一些外部情况,我想忽略测试。
目前,我在beforeTestClass
或beforeTestMethod
内使用假设来实现此功能。但不幸的是,它在日志中创建了一个包含堆栈跟踪的警告,该堆栈跟踪非常嘈杂。
以某种方式可以以编程方式忽略测试(可能使用TestContext)吗?
答案 0 :(得分:2)
我认为您可以尝试扩展默认测试运行器并提供isIgnored
方法的自定义实现:
public class CustomRunner extends BlockJUnit4ClassRunner {
public CustomRunner(Class<?> c) throws initializationError {
super(c);
}
@Override
protected boolean isIgnored(FrameworkMethod child) {
if(shouldIgnore()) {
return true;
}
return super.isIgnored(child);
}
private boolean shouldIgnore() {
/* some custom criteria */
}
}
此处,base implementation忽略了具有@Ignore
注释的测试,但您可以提供自己的忽略条件实现。