jUnit:如何过滤在多个套件中发现的测试
问题描述:
当jUnit运行包含多个“子套件”的测试套件时,是否可以过滤在不同套件中找到的测试,以使它们仅运行一次?我正在开发一个有许多数据库集成测试的项目,所以最好只运行一次,以便让它更快。使用JUnit 4.4(使用Eclipse或蚂蚁)运行MainSuite
时jUnit:如何过滤在多个套件中发现的测试
@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
{}
目前运行SomeTestUsedByManyModules
两次:
考虑这个 “主套件”:
@RunWith(Suite.class)
@SuiteClasses
({
ModuleASuite.class,
ModuleBSuite.class,
// More suites...
})
public class MainSuite
{}
而这些 “子套房”。我怎样才能让它只运行一次?我想自己制作Runner,但也许有一个更简单的解决方案呢?
我从来没有听说过JUnit会记录之前是否运行测试方法 - 毕竟,也许这就是您的意图?编写自己的跑步者可能是唯一的方法。 (好吧,你可以在每个测试方法中添加代码,将自己注册到某个共享散列,这样它就可以决定是否运行。)相当丑陋。)编写测试跑步者看起来令人望而生畏,但看起来更难。 – 2011-05-17 21:08:39