2

设置:

我继承的一个较旧的项目有很多遗留的仪器测试,我想对它们施加超时,因为它们中的很多可以无限期地挂起,这使得很难获得测试报告。我正在将测试更新为 Junit4 样式,但目前它们都在扩展 ActivityInstrumentationTestCase2。

到目前为止尝试过:

AndroidJUnitRunner的文档中,它说要设置这个标志:

设置将应用于每个测试的超时(以毫秒为单位):-e timeout_msec 5000 ...

...所有参数也可以通过元数据标记在 AndroidManifest 中指定

我尝试将 AndroidJUnitRunner 配置添加到应用程序清单和测试清单中,但 timeout_msec 元数据项到目前为止没有任何效果。

4

1 回答 1

7

您可以使用规则为类中的每个测试提供超时,如下所示。

@Rule public Timeout timeout = new Timeout(120000, TimeUnit.MILLISECONDS);

您还可以使用以下命令指定每个测试的超时时间

@Test(timeout = 100) // Exception: test timed out after 100 milliseconds
public void test1() throws Exception {
    Thread.sleep(200);
}

您可以使用此链接阅读有关差异的更多信息

https://stackoverflow.com/a/32034936/2128442

于 2017-08-28T16:52:32.480 回答