首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在测试套件中使用Junit 5运行特定方法

仅在测试套件中使用Junit 5运行特定方法
EN

Stack Overflow用户
提问于 2022-08-12 10:42:07
回答 1查看 297关注 0票数 0

我有两个测试类(A,B),都有3种测试方法。我把它们放到测试套件中,只想运行特定的方法(例如:所有类中只有第一个方法)。对于junit4中的这个用例,我有自定义运行程序,这是通过将runner传递给@RunWith(CustomRunner.class)来完成的。

我正在尝试将我的junit4测试套件迁移到junit5测试套件中。我创建了一个测试套件:

代码语言:javascript
复制
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吗?如果是的话,你会推荐哪个分机?

EN

回答 1

Stack Overflow用户

发布于 2022-08-12 13:51:55

尝试提供实现ExecutionCondition的自定义类,但是这不起作用,我不知道为什么。我是不是遗漏了什么,还是整个方法都错了?

代码语言:javascript
复制
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");
    }

}

我的测试套件:

代码语言:javascript
复制
@SelectClasses({com.example.junit5testexample.A.class,
com.example.junit5testexample.B.class})
@Suite
@ExtendWith(RunMethodCondition.class)
public class JUnit5TestSuiteExample {

}

在junit文档中:“对ExecutionCondition进行评估,以确定是否应该根据提供的ExtensionContext执行给定的容器或测试。”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73332894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档