java在一定时间内运行junit测试 1 周,3 日 Questions & Answers 2262 我想测试一段时间,比如说5秒钟,然后如果没有任何错误,就通过测试。这在注释中是可能的吗?像@Test(uptime=5000)这样的东西可以用吗
# 1 楼答案 问题编辑后修改答案 从根本上说,这里感觉你在测试错误的东西——“什么都没发生”是成功的标志,这似乎很奇怪 如果你想证明你的算法可以运行一定时间而不会失败,我会提取一个周期,然后写一个测试,比如: @Test public void fineForFiveSeconds() { long start = System.nanoTime(); long end = start + TimeUnit.SECONDS.toNanos(5); while (System.nanoTime < end()) { test.executeOneIteration(); } } 这样你就不需要一个单独的线程来杀死正在工作的代码等等 原始答案 这个问题表明超时是成功的标志,而不是失败的标志 我想您只需要@Test注释中的^{}属性: @Test(timeout = 5000) 随附文件: Optionally specify timeout in milliseconds to cause a test method to fail if it takes longer than that number of milliseconds.
# 1 楼答案
问题编辑后修改答案
从根本上说,这里感觉你在测试错误的东西——“什么都没发生”是成功的标志,这似乎很奇怪
如果你想证明你的算法可以运行一定时间而不会失败,我会提取一个周期,然后写一个测试,比如:
这样你就不需要一个单独的线程来杀死正在工作的代码等等
原始答案
这个问题表明超时是成功的标志,而不是失败的标志
我想您只需要} 属性:
@Test
注释中的^{随附文件: