首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确认有多少测试并行运行?

如何确认有多少测试并行运行?
EN

Stack Overflow用户
提问于 2015-12-02 21:44:04
回答 2查看 2.2K关注 0票数 0

我在一台16核机器上运行我的单元测试。在不使用并行化参数--workers=1--workers=32时,我看不到经过的时间有什么不同。我想确认一下,NUnit确实在运行预期数量的同时测试,这样我就不会花时间在我的测试代码中寻找一个不存在的问题。

我在公共基类上有[Parallelizable] (默认范围,ParallelScope.Self)。它不是在任何其他类或方法上定义的。我正在通过Jenkins和本地命令行使用nunit3-console

有什么方法可以判断测试是并行运行的吗?NUnit正在报告正确的工作线程数,但是没有报告说(例如)每个线程中运行了多少个测试。

代码语言:javascript
复制
Run Settings
    ProcessModel: Multiple
    RuntimeFramework: net-4.5
    WorkDirectory: C:\Jenkins\workspace\myproject
    NumberOfTestWorkers: 16

我可以记录每个测试的开始时间和完成时间,然后手动检查是否有合理数量的重叠;是否有更简单和更可重复的方法来获得我想要的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-03 03:23:55

我打开了--trace=Verbose,它生成一些文件。InternalTrace.<pid1>.logInternalTrace.<pid2>.<dll_name>.log一起包含了对测试过程中发生的事情的详细描述。每个代理日志(日志文件名中有DLL名称的日志)非常清楚并行化的状态。

代码语言:javascript
复制
16:13:40.701 Debug [10] WorkItemDispatcher: Directly executing test1
16:13:47.506 Debug [10] WorkItemDispatcher: Directly executing test2
16:13:52.847 Debug [10] WorkItemDispatcher: Directly executing test3
16:13:58.922 Debug [10] WorkItemDispatcher: Directly executing test4
16:14:04.492 Debug [10] WorkItemDispatcher: Directly executing test5("param1")
16:14:09.720 Debug [10] WorkItemDispatcher: Directly executing test5("param2")
16:14:14.618 Debug [10] WorkItemDispatcher: Directly executing test5("param3")

在我看来,第三个字段就像一个线程ID。所以我相信代理一次只运行一个测试,即使(我认为.)我已经使所有的测试都可以并行化,并且它们都在不同的测试装置中。

现在我得弄清楚我做错了什么,为什么他们没有并行运行.

票数 0
EN

Stack Overflow用户

发布于 2015-12-03 13:43:12

我可能弄错了,但在我看来,设置` `Parallelizable`‘参数不足以使测试并行运行。您还需要创建将运行测试的节点。因此,如果您使用Jenkins,您必须创建Jenkins奴隶,只有这样,您的测试才会并行运行。

,所以我想说的是,据我所知,不可能在一台PC.上并行运行测试。

如果有这样的可能性(在同一台机器上并行运行测试),那将是非常棒的,我很难听到它!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34053611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档