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