使测试并行运行

时间:2010-09-17 11:44:58

标签: c# parallel-processing

我有一个脚本执行引擎,最终用户在其中编写脚本来运行测试。现在我们想要并行运行大约40个测试。我想知道是否应该将所有脚本(在Perl或VBA中)转换为C#代码然后并行化它或尝试从C#控制脚本引擎以并行运行所有这些脚本?任何建议或想法都会有所帮助。 我发现仍然使用该脚本的一个优点是,最终用户将能够编写自己的测试代码,而不是在C#中为每次更改找到我。

还可以在多台PC上并行运行代码,并使用C#从一台主PC控制它吗? 我是C#并行编程的新手。

2 个答案:

答案 0 :(得分:1)

一切皆有可能!这是时间和精力以及正确方法的问题。

并行编程是C#4.0中用于在同一AppDomain中并行运行任务的新范例(几乎与进程相同但并非总是如此,因为有时每个进程可能有多个AppDomain)。因此,您无法使用并行编程在多台计算机上运行它,但您可以实现mini-GRID计算以在多台计算机上运行它。

如果你的测试可以并行运行 - 他们似乎可以 - 你可以用几行代码并行运行它们。

// not a real code
foreach(Test t in myTetsts.AsParallel())
{
   t.run();
}

答案 1 :(得分:0)

我假设您希望并行运行测试以使用所有CPU并加快测试速度。

如果测试是独立的,为什么不将测试分成4组,每组10个测试,然后同时运行4个测试执行器。这将为您提供4个将分布在您的CPU上的进程。

不如在线程级别控制它,但是编写一个批处理文件来启动4个测试运行器可能会少得多。