我有一些代码需要在我的测试类(class)之前和之后运行。中间运行多少个测试类无关紧要,它必须为整个集合运行一次且仅运行一次。
当我在一个套件中运行时,它会在整个套件的开头和结尾被调用,这按预期工作,但是,我希望能够运行单个测试类。在这种情况下,测试类需要检测到它是单独运行并启动前/后测试代码。
这可能吗?
最佳答案
我这样解决了这个问题:
在 MySuite
我添加了这个:
public static Boolean suiteRunning = false;
@ClassRule
public static ExternalResource triggerSuiteRunning = new ExternalResource() {
@Override
protected void before() throws Throwable {
suiteRunning = true;
}
};
现在,在依赖测试中,我知道套件是否正在运行并且可以禁用测试:
@BeforeClass
public static void beforeClass() {
Assume.assumeTrue(MySuite.suiteRunning);
}
// --- or ---
@Test
public static void test() {
Assume.assumeTrue(MySuite.suiteRunning);
}
关于junit - 检测 Junit 测试类是在套件中运行还是单独运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17945059/