【发布时间】:2008-12-08 21:18:56
【问题描述】:
感谢库升级(easymock 2.2 -> 2.4),我们的测试已经开始锁定。我想暂停一下个人测试,所有这些测试。这个想法是识别锁定的测试 - 我们目前正在猜测 - 并修复它们。
这可能吗,最好是在整个套件级别上?我们有 400 次测试,每个方法甚至每个类都这样做会很耗时。
【问题讨论】:
标签: java multithreading testng
感谢库升级(easymock 2.2 -> 2.4),我们的测试已经开始锁定。我想暂停一下个人测试,所有这些测试。这个想法是识别锁定的测试 - 我们目前正在猜测 - 并修复它们。
这可能吗,最好是在整个套件级别上?我们有 400 次测试,每个方法甚至每个类都这样做会很耗时。
【问题讨论】:
标签: java multithreading testng
suite tag 可以具有超时属性。此超时将用作所有测试方法的默认值。
这个默认超时可以在每个测试方法的基础上被覆盖。
【讨论】:
如果套件级别被证明是错误的方法(即“网络太宽”,因为您最终标记了太多带有超时限制的方法),您需要定义一个自定义 IAnnotationTransformer,对于每个难以辨认的功能,将使您有机会修改@Test 注释(例如setTimout() method)。
(setTimout(0) 取消超时指令)
【讨论】:
很晚,但是:运行jstack -l <PID> 将为您提供堆栈转储,您可以检查以找出哪些调用被卡住了。您可能需要采样几次以确保它们被卡住。
【讨论】:
您可以搜索“@Test”并将其替换为“@Test(timeout=)” 应该努力找到锁定的测试,然后可以撤消。
【讨论】: