加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 运行junit测试一定的时间

发布时间:2020-12-15 04:08:04 所属栏目:Java 来源:网络整理
导读:我想测试一段时间,比如5秒钟,然后通过测试,如果没有任何错误被断言.这可能带注释吗?可以使用像@Test(正常运行时间= 5000)这样的东西吗? 解决方法 修改后的问题被修改后的答案 从根本上说,感觉就像你在这里测试错误的东西 – 似乎很奇怪“没有任何事情发生
我想测试一段时间,比如5秒钟,然后通过测试,如果没有任何错误被断言.这可能带注释吗?可以使用像@Test(正常运行时间= 5000)这样的东西吗?

解决方法

修改后的问题被修改后的答案

从根本上说,感觉就像你在这里测试错误的东西 – 似乎很奇怪“没有任何事情发生”是成功的标志.

如果你想证明你的算法可以运行一段时间而不会失败,我实际上会提取出一个循环,然后写一个类似的测试:

@Test
public void fineForFiveSeconds() {
    long start = System.nanoTime();
    long end = start + TimeUnit.SECONDS.toNanos(5);
    while (System.nanoTime < end()) {
        test.executeOneIteration();
    }
}

这样你就没有一个单独的线程,它必须杀死工作代码等.

原始答案

这个答案是在问题表明超时是成功的标志,而不是失败之前写的.

我想你只想要@Test注释中的timeout属性:

@Test(timeout = 5000)

有文件:

Optionally specify timeout in milliseconds to cause a test method to fail if it takes longer than that number of milliseconds.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读