gpt4 book ai didi

junit - junit4中@SuiteClasses中如何指定要添加哪些类

转载 作者:行者123 更新时间:2023-12-02 00:21:55 24 4
gpt4 key购买 nike

在 Junit 4 中,我们使用注释添加测试套件,如下所述:

@RunWith(Suite.class)
@SuiteClasses({
A.class, B.class })
public class MyTestsuite
{
}

我的问题是,我们是否有任何方法可以指定条件来决定我想将哪些类包含在@SuiteClasses 中。例如;让我们在上面的代码中说,如果我想在某些特定条件为真时对 A 进行分类,否则我不想将其添加到@SuiteClasses。

在 junit 3.8 中,我们使用如下所述的 suite() 方法来实现:

public class MyTestsuite extends TestCase
{
public static Test suite()
{
TestSuite suite = new TestSuite();
if(some_condition_true)
{
suite.addTest(A.suite);
}
suite.addTest(B.suite);
return suite;
}
}

有什么方法可以使用 junit 4 实现这一点?

最佳答案

扩展套件:

@RunWith(MySuite.class)//Customized
@SuiteClasses({
A.class, B.class })
public class MyTestsuite
{}

定义我的套件:

public class MySuite extends Suite {
public MySuite(Class<?> klass, RunnerBuilder builder)
throws InitializationError {
super(klass, builder);
try {
filter(new Filter() {
@Override public boolean shouldRun(Description description) {
return some_condition_true? true : false;
}

@Override
public String describe() {
return "...";
}
});
} catch (NoTestsRemainException e) {
System.out.println("Hey, all test cases are not satisfied your condition.");
}
}
}

加:虽然它可以工作,但我建议保持测试用例简单。很难维护复杂的东西。

关于junit - junit4中@SuiteClasses中如何指定要添加哪些类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10617016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com