jUnit:如何筛选多个套件中的测试

时间:2011-05-17 20:28:38

标签: 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,但也许有一个更方便的解决方案呢?

1 个答案:

答案 0 :(得分:1)

我不知道如何使用@RunWith(Suite),但是不同的方法呢? ClassPathSuite允许您提供测试名称模式,以避免需要手动列出所有模式。