我有一个测试套件,有大量的测试。 我希望通过将它们发送到我的HUB来同时运行这些测试(假设我有2个节点)。意思是,运行我的所有测试(在本地或在Teamcity中)并且我期望结果是Node1将运行测试#1,而同时,Node2将运行测试# 2。 事实上,目前发生的事情是测试#1将在Node1上运行,当它完成时,就在那时,测试#2将在Node2上执行,依此类推......
我可以将我的测试分成两个项目或者打开两个Visual Studio会话并同时运行它们,HUB会完成其余的工作(对吗?),但这听起来不错。
我的代码是用C#编写的。
答案 0 :(得分:0)
而不是使用运行测试的构建,例如任务1:节点测试test1,任务2裸测试2。
有一个任务产生2个子shell并等待两者完成。 e,g,任务1:bash test1()节点test1& test2()节点test2&
()表示在子shell中运行它,以便为你生成一个新线程,并且&意味着在后台运行,以便它可以同时运行。然后你需要以某种方式等待两者结束,或者通过做一段时间-z ps-aux grep test1(同时有一个正则表达式test1的进程)
如果你想在单独的电脑上运行它,那么你可以将文件scp到另一台电脑,然后ssh开始测试,然后执行while循环以等待finish.txt文件。
答案 1 :(得分:0)
由于您使用C#编写的代码,我假设您使用NUnit,NUnit运行器可以在NUnit3发布后同时运行测试,因此您只需要添加
[assembly: Parallelizable(ParallelScope.Fixtures)]
到您的属性AssemblyInfo.cs文件。 它对我有用。