我有一些代码需要在我的测试类之前和之后运行.无论在中间运行多少个测试类,它必须为整个集合运行一次且仅运行一次.
当我在套件中运行时,它在整个套件的开始和结束时调用,这是按预期工作的,但是,我希望能够运行单个测试类.在这种情况下,测试类需要检测它是否单独运行并启动前/后测试代码.
这可能吗?
我这样解决了这个问题:
在MySuite我添加这个:
public static Boolean suiteRunning = false;
@ClassRule
public static ExternalResource triggerSuiteRunning = new ExternalResource() {
@Override
protected void before() throws Throwable {
suiteRunning = true;
}
};
Run Code Online (Sandbox Code Playgroud)
现在,在依赖测试中,我知道套件是否正在运行并且可以禁用测试:
@BeforeClass
public static void beforeClass() {
Assume.assumeTrue(MySuite.suiteRunning);
}
// --- or ---
@Test
public static void test() {
Assume.assumeTrue(MySuite.suiteRunning);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1908 次 |
| 最近记录: |