在詹金斯的Junit Test Hang

时间:2012-02-03 14:32:38

标签: java eclipse junit hudson jenkins

我们在Eclipse中运行我们的junit测试看起来很好,但是当我们将它移动到hudson或jenkins时,测试似乎挂起,永远不会返回。它绝对是相同的代码,我只是想知道在Eclipse和Hudson中运行测试之间的区别。

3 个答案:

答案 0 :(得分:0)

在eclipse中,您通常只运行一个测试类或一个测试方法。为此测试启动并停止“新的”Java虚拟机。

我认为Jenkins在一台Java虚拟机中运行所有测试。这可以产生巨大的差异。

尝试在eclipse之外和hudson之外运行所有测试(如果你有maven项目,应该很简单)。结果是什么?也许您可以将测试运行配置为在每次测试时分叉Java VM(通过配置surefire插件可以通过maven实现)。

答案 1 :(得分:0)

我的猜测是看内存限制。尝试增加从Jenkins开始的maven进程的内存限制。

我的另一个猜测是看看是否允许Jenkins的Maven构建并行执行子模块。如果是,可能会导致一些难以找到的竞争条件。

答案 2 :(得分:0)

在Eclipse和Hudson中,测试是否以相同的方式执行?我的猜测是,测试是在Eclipse中逐个执行(或逐个类),还是在Hudson中使用Maven或Ant等构建脚本执行?如果从本地计算机上的终端执行测试套件会发生什么?