测试分布
在我的工作中,我们正在运行一组测试,其中包含大约 3,000 个单独的测试用例。 此前,我们在一台机器上运行整个测试套件,大约需要 24-72 小时才能完成整个测试运行。 我们现在已经创建了自己的系统,用于在大约三台独立的机器之间分组和分配测试,并且对测试进行优先级排序,以便首先运行核心测试以获得更直接的结果,并在有可用机器时运行额外的测试。
我很好奇是否有人找到了一种在多台机器之间分配测试的好方法,以减少完整运行的总测试时间,以及使用什么工具来实现这一目标。 我做了一些研究,看起来 TestNG 正在朝这个方向发展,但它看起来它仍处于相当多的开发阶段。
我们不打算重写任何测试,但当我们添加新测试并测试新产品或附加组件时,我希望能够处理我们正在处理大量测试的事实。 另一方面,如果我们能找到一个工具,即使以非常基本的方式,也能帮助分发我们的 Junit 3.x
测试,那么将会很有帮助,因为我们不会'不需要维护我们自己的工具来做到这一点。
At my work we are running a group of tests that consist of about 3,000 separate test cases. Previously we were running this entire test suite on one machine, which took about 24-72 hours to complete the entire test run. We now have created our own system for grouping and distributing the tests among about three separate machines and the tests are prioritized so that the core tests get run first for more immediate results and the extra tests run when there is an available machine.
I am curious if anyone has found a good way to distribute their tests among several machines to reduce total test time for a complete run and what tools were used to achieve that. I've done some research and it looks like TestNG is moving in this direction, but it looks like it is still under quite a bit of development.
We don't plan on rewriting any of our tests, but as we add new tests and test new products or add-ons I'd like to be able to deal with the fact that we are working with very large numbers of tests. On the other hand, if we can find a tool that would help distribute our Junit 3.x
tests even in a very basic fashion, that would be helpful since we wouldn't have to maintain our own tooling to do that.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我们的构建人员使用 Mozilla Tinderbox。 它似乎有一些用于分布式测试的钩子。 很抱歉不知道详细信息,但我想我至少会将指针传递给您。
这也很好,因为您可以立即发现构建何时中断,以及哪些签入可能是罪魁祸首。
http://www.mozilla.org/tinderbox.html
Our build people use Mozilla Tinderbox. It seems to have some hooks for distributed testing. I'm sorry not to know the details but I thought I would at least pass on the pointer to you.
It's also nice coz you can find out immediately when a build breaks, and what checkin might have been the culprit.
http://www.mozilla.org/tinderbox.html
还有parallel-junit。 根据您当前执行测试的方式,其便利性可能会有所不同 - 这个想法只是在具有多个内核的单个系统上进行多线程。 我已经简单地使用过它,但它与我们当前运行测试的方式有所不同。
Hudson,我使用的持续集成引擎,也有一些分布式测试运行的方法(聚合单独的作业)结果为一)。
There's also parallel-junit. Depending on how you currently execute your tests its convenience may vary - the idea is just to multithread on a single system that has multiple cores. I've played with it briefly, but it's a change from how we currently run our tests.
Hudson, the continuous integration engine I use, also has some ways to distribute test running (separate jobs aggregated results in one).
我见过一些人在玩 分布式 JUnit 。 我不能特别保证它有多有效,但我见过的其他团队似乎认为它足够简单。 希望有帮助。
I've seen some people having a play with distributed JUnit. I can't particularly vouch for how effective it is, but the other teams I've seen seemed to think it was straight forward enough. Hope that helps.