java - jUnit:如何过滤在多个套件中找到的测试

标签 java junit junit4

当 jUnit 运行包含多个“子套件”的测试套件时,是否可以过滤在不同套件中找到的测试,使它们只运行一次?我正在处理一个包含许多数据库集成测试的项目,因此最好只运行一次这些测试以使其更快。

考虑这个“主套件”:

@RunWith(Suite.class)
@SuiteClasses
({
    ModuleASuite.class,
    ModuleBSuite.class,
    // More suites...
})
public class MainSuite
{}

还有这些“子套房”:

@RunWith(Suite.class)
@SuiteClasses
({
    TestA1.class,
    TestA2.class,
    //... More tests only related to ModuleA

    SomeTestUsedByManyModules.class
})
public class ModuleASuite
{}

@RunWith(Suite.class)
@SuiteClasses
({
    TestB1.class,
    TestB2.class,
    //... More tests only related to ModuleB

    SomeTestUsedByManyModules.class
})
public class ModuleBSuite
{}

当前,当使用 jUnit 4.4(使用 Eclipse 或 Ant)运行 MainSuite 时,它会运行 SomeTestUsedByManyModules 两次。我怎样才能让它只运行一次?我想自己做 Runner但也许对此有更简单的解决方案?

最佳答案

我不知道如何使用@RunWith(Suite) 来做到这一点,但是换一种方法呢? ClassPathSuite允许您提供测试名称模式以避免手动列出它们。

关于java - jUnit:如何过滤在多个套件中找到的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6036702/

相关文章:

JavaFX : Java. Lang.ClassNotFoundException(即使场景构建器找到 Controller )

Java 继承示例

java - 模拟 - 缺少方法调用异常

android - 如何模拟采用回调对象和调用者使用回调委托(delegate)结果的方法

java - AndroidJUnit4.class + org.junit.Assume.assumeTrue = AssumptionViolatedException

java - CAS 身份验证后获取 JSF Managed Bean 中的 LDAP 属性

Java,Spring MVC,从服务器提取任何类型的文件(.png、.jpg、.pdf、.doc 等)并提供给用户下载的最简单方法?

java - JUnit - 所有测试类何时执行的监听器?

Java Junit4 : assertEquals for ArrayList<Double> with single precision expected values

java - 使用spring条件bean时如何指定单元测试