gpt4 book ai didi

unit-testing - Maven surefire插件是否使用多个线程运行测试?

转载 作者:行者123 更新时间:2023-12-03 14:52:49 35 4
gpt4 key购买 nike

我想知道Maven surefire插件是否默认运行多线程测试(是否可以控制线程数量?),或者它是否以随机顺序或可预测的顺序运行来自Test类的测试?秩序可以通过某种方式来决定。

我还没有对此进行验证(我明天会这样做,只是在寻找一些提示指导和验证),但是看来我的各种JUnit Test类正在以某种混杂的顺序运行测试。编排测试资源的创建确实很痛苦(在我的情况下这非常繁琐)。

这可能是一个经典问题,我使用Eclipse JUnit运行程序运行我的套件,并且所有程序运行都非常线性并且运行良好。我去了Maven cmd线,事情似乎正在一步步走向彼此。

最佳答案

默认情况下,Maven在单独的(“分支”)进程中运行测试,仅此而已(可以使用forkMode可选参数进行控制)。

如果您使用的是TestNG或Junit 4.7+(自SUREFIRE-555起),则可以并行运行测试(请参见parallelthreadCount可选参数),但这不是默认设置。

现在,虽然我不确定surefire插件的行为是否与JUnit相同,但是可以通过手动创建TestSuite并指定执行测试的顺序来获得一些控制权:

TestSuite suite= new TestSuite();
suite.addTest(new MathTest("testAdd"));
suite.addTest(new MathTest("testDivideByZero"));


但是,强烈建议您不要依赖于测试执行顺序,单元测试实际上应该确实是独立的。

附注:以防万一,您可能也想对此请求 SUREFIRE-321(以字母顺序运行测试)。

关于unit-testing - Maven surefire插件是否使用多个线程运行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2286571/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com