我有一个包含JUnit测试的Maven管理的Java项目 - 没什么不寻常的。最近,我开始在我的机器上破坏构建,但哈德森仍然很高兴。我意识到我做了一个改变,打破了单元测试,但注意到Hudson没有运行单元测试。我的大多数测试运行良好,但我的一个软件包中的所有内容都完全没有。未列为“已跳过”,但实际上缺少。
现在,我没有设置这个Hudson实例,我不是一个大师,所以我不知道从哪里开始。没有特别的顺序:
test-classes
下有一个/target
目录,其中包含所有缺失测试的.class
个文件,但/target/surefire-reports
没有匹配的输出文件我觉得我必须缺少某种设置某处,或者至少某种日志文件会指示这是怎么回事 - 也许测试失败所以在他们写下失败之前,你是否已经开始调用Surefire进程? - 但就像我说的那样,Hudson newb。我的下一步行动应该是什么?
更新:在本地安装Jenkins并尝试重现。我正在失去理智:它仍然无法运行相当多的测试,即使我自己登录,转到Jenkins工作区,并构建
据我所知,这两台机器的来源是相同的,我的环境应该是相同的(同一帐户)......我想不出任何差异,当然除了很多测试都没有不要在Jenkins盒子上跑。
答案 0 :(得分:2)
我刚才遇到了这个问题,我愿意打赌你的一些测试并没有遵循标准的命名惯例; * Test.java。默认情况下,Surefire只会选择符合某种命名惯例的测试; http://maven.apache.org/plugins/maven-surefire-plugin/examples/inclusion-exclusion.html
答案 1 :(得分:0)
我几乎肯定this is not Hudson's fault,甚至严格Maven的错。我认为这是一个JUnit错误,我会在另一个问题中追逐它。