在我们的项目中,我们使用maven运行junits和cobertura。我面临的问题是,
答案 0 :(得分:23)
虽然我找不到确切的页面,但我最近读了一个关于为什么两次运行测试被认为是个好主意的讨论。引用的关键问题是Cobertura字节码更改对测试准确性的影响。在某些情况下,代码执行的时间可能很重要,字节代码更改可能导致JUnit中的测试在仅在Cobertura中运行时通过,反之亦然。因此,建议允许测试执行两次。引用的大多数示例都是围绕多线程行为,但我想可能还有其他情况,字节代码更改可能会导致测试中出现问题。如果Cobertura实际上改变了测试成功,那么让测试以两种方式执行可以为您提供基线结果,并且还可以减少让您进行疯狂追逐的机会。
答案 1 :(得分:1)
尝试添加cobertura作为编译范围参考。并张贴你的pom的相关部分。
答案 2 :(得分:1)
这是因为报告执行需要执行测试,因此可以创建报告。如果站点插件上有一个“仅限站点”的目标,但没有@requiresDependencyResolution test
注释,则可以将其绑定到项目的prepare-package
阶段,并且在没有运行测试的情况下生成报告两次。
不幸的是,目前似乎没有这样的目标(请参阅我的question主题)。 有关解决方法的详细信息,请参阅我对问题的回答。