2009-02-05 33 views
5

我使用Hudson来自动化一个非常大的重要产品的测试。我希望我的测试主机能够运行尽可能多的并发构建,因为他们在理论上将支持excel测试例外,而excel测试只能在每台机器上随时运行一个。任何数量的非excel测试都可以同时运行,但是每次最多只能运行一次excel测试。如何确保在Hudson中只有一个类别的作业同时运行?

背景:

我的大多数测试是正常的单元测试 - 的那种,我可以并行运行很容易的事情。不幸的是,我的单元测试计划中大量耗时的部分包含已在Excel中实施的测试。

在Excel中实施测试可能会让你觉得很疯狂 - 实际上有一个重要的原因:我们大多数用户通过Excel访问我们的系统。 Excel有自己独特的处理数据的方式,所以唯一保证我们的东西适用于Excel用户的方法是从字面上实现我们的应用程序Excel的reg测试。

我写了一个测试运行器工具,它允许我轻松地启动一组excel测试:每个测试都是一个.xls文件。每个组都是一个充满excel文件的文件夹。我有大约30个团队需要进行端到端测试。我的工具将每个测试的结果转换为Hudson能够理解的JUnit风格的XML。测试使用pywin32com库来自动执行excel。当他们自己运行时,他们是可靠的。

我有一组致力于运行测试的计算机。每台机器都是四核的,理论上可以一次运行相当多的东西。不幸的是,我发现COM不能用来安全地控制每台机器超过1个excel。

也就是说,如果第二个构建星号试图通过COM与Excel交谈,它可能会干扰已在运行的程序并导致两个测试都失败。

我可以像机器允许的那样运行许多其他非excel进程,但我需要找到一种方法,以便Hudson不会尝试启动超过1个进程,这需要同时在任何一台机器上运行excel。

+1

的可能重复[如何防止某些詹金斯从工作同时运行?](http://stackoverflow.com/questions/6276272/how-to-prevent-certain-jenkins-jobs-from-同时运行) – 2013-07-24 14:27:07

回答

0

是不是哈德森java?

既然你已经标记了这篇文章python,我会指出buildbot,有slave locks限制个别奴隶(或使用他们作为更粗略的锁如果你愿意)。

+3

我正在测试Hudson中的Python/Excel应用程序。 Hudson是用Java编写的,但实际上我没有做任何Java编程。 – 2009-02-05 18:20:57

相关问题