如何知道哪些测试并行运行?

时间:2016-01-28 09:11:08

标签: jenkins nunit automated-tests

我的问题一般是这样的:当我并行运行自动化测试时,我怎么知道它们同时运行了哪些?

我的问题是:我正在并行运行测试(每次4次测试),但我不知道它们中的哪一个(同时)正在执行,哪些正在等待。

执行测试后会出现一些故障,可能是故障原因是在测试失败的同时执行的其他测试。所以我想知道哪些测试一起执行,所以我可以再次一起运行它们来调试失败的测试。

我使用的技术:NUnit 3.0,C#,Selenium WebDriver,Jenkins

我很高兴听到任何可能的解决方案(如果难以应用则无关紧要)

2 个答案:

答案 0 :(得分:0)

出于调试目的,您可以使用--trace=Verbose选项运行NUnit控制台。

这会将日志写入您正在执行的目录,这看起来有点像这样:

14:56:13.972 Info  [13] TestWorker: Worker#4 executing TestsSuite1
14:56:13.973 Debug [13] WorkItemDispatcher: Directly executing TestA
14:56:13.976 Debug [12] WorkItemDispatcher: Directly executing TestB
14:56:13.976 Debug [16] WorkItemDispatcher: Directly executing TestC
14:56:13.980 Debug [12] WorkItemDispatcher: Directly executing TestD
14:56:13.982 Debug [16] WorkItemDispatcher: Directly executing TestE(False,False,False,0)
14:56:13.989 Debug [16] WorkItemDispatcher: Directly executing TestE(False,False,True,0)

我认为方括号中的数字表示不同的线程,因此在这里,您可以看到工作人员12和16同时运行TestC和TestD。

当然,它并不像看到哪些测试同时运行一样简单,但这可能有助于缩小问题范围。

答案 1 :(得分:0)

最简单的方法是有选择地禁用并行性,直到找到导致问题的组合。

  1. 通过运行--workers = 0禁用所有并行性。如果相同的测试失败,那么您就不会遇到并行问题。

  2. 选择性地重新运行失败的测试,使用--test或--where选项来选择它们。编辑灯具以启用/禁用并行度,直到您点击完成工作的组合。