har*_*are 16 junit maven-2 unit-testing surefire
我想知道Maven surefire插件是否默认运行多线程测试(如果可以控制线程数?)或者它是否以随机顺序或可预测顺序从Test类运行测试,或者如果订单可以通过某种方式决定.
我还没有验证这一点(明天我会这样做,只是在寻找一些提示指导和验证),但看起来好像我的各种JUnit Test类正在以一些混合的顺序运行测试.这使得编排测试资源(在我的情况下非常大)是一个真正的痛苦.
它可能是一个经典的问题,我使用Eclipse JUnit运行程序运行我的套件,一切都运行非常线性,并且运行良好.我去Maven cmd线,事情似乎互相踩着.
Pas*_*ent 13
默认情况下,Maven在单独的("分叉")进程中运行您的测试,仅此而已(可以使用forkMode可选参数控制).
如果您使用的是TestNG 或 Junit 4.7+(自SUREFIRE-555以来),则可以并行运行测试(请参阅parallel和threadCount可选参数),但这不是默认设置.
现在,虽然我不确定surefire插件的行为是否与JUnit相同,但可以通过手动创建TestSuite并指定执行测试的顺序来获得一些控制:
TestSuite suite= new TestSuite();
suite.addTest(new MathTest("testAdd"));
suite.addTest(new MathTest("testDivideByZero"));
Run Code Online (Sandbox Code Playgroud)
然而,强烈建议您永远不要依赖于测试执行顺序,单元测试确实应该是独立的.
PS:以防万一,还有这个请求SUREFIRE-321(按字母顺序运行测试)你可能想要投票.
| 归档时间: |
|
| 查看次数: |
12589 次 |
| 最近记录: |