我有两个测试类(A,B),都有3种测试方法。我把它们放到测试套件中,只想运行特定的方法(例如:所有类中只有第一个方法)。对于junit4中的这个用例,我有自定义运行程序,这是通过将runner传递给@RunWith(CustomRunner.class)来完成的。
我正在尝试将我的junit4测试套件迁移到junit5测试套件中。我创建了一个测试套件:
import org.junit.platform.suite.api.IncludeTags;
import org.junit.platform.suite.api.SelectPackages;
import org.junit.platform.suite.api.Suite;
@SelectClasses({com.example.junit5testexample.A.class,
com.example.junit5testexample.B.class})
@Suite
@SuiteDisplayName("junit5 suite")
public class JUnit5TestSuiteExample {
}我现在如何过滤这些方法?我应该使用扩展名和@ExtendWith吗?如果是的话,你会推荐哪个分机?
发布于 2022-08-12 13:51:55
尝试提供实现ExecutionCondition的自定义类,但是这不起作用,我不知道为什么。我是不是遗漏了什么,还是整个方法都错了?
public class RunMethodCondition implements ExecutionCondition {
@Override
public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context){
final Method testedMethod = context.getTestMethod().get();
if(testedMethod.getName()=="Atest1"){
return ConditionEvaluationResult.enabled("enabled");
}
return ConditionEvaluationResult.disabled("disabled");
}
}我的测试套件:
@SelectClasses({com.example.junit5testexample.A.class,
com.example.junit5testexample.B.class})
@Suite
@ExtendWith(RunMethodCondition.class)
public class JUnit5TestSuiteExample {
}在junit文档中:“对ExecutionCondition进行评估,以确定是否应该根据提供的ExtensionContext执行给定的容器或测试。”
https://stackoverflow.com/questions/73332894
复制相似问题