我正在使用Jetty运行我的webApp和我的检测类。 关闭Jetty后,我正在使用生成的.set文件并使用命令行工具创建一个cobertura报告。
我总是在任何课程上获得100%的报道结果。 Cobertura似乎只考虑了测试期间执行的行,并且没有获得完整的类数据。
我尝试将源文件添加到报告中 - 没有帮助。 我还试图获取在检测之后创建的.ser文件并将其与Jetty关闭后创建的.ser文件合并(它实际上是同一个文件,但在运行Jetty之前我备份了在检测之后创建的.ser文件) - 这里也没有帮助。
有人可以帮忙吗?
由于
答案 0 :(得分:2)
100%的覆盖率是一个明确的指标,报告缺少来源。您应该检查配置以创建报告。
确保:
答案 1 :(得分:2)
正如http://cobertura.sourceforge.net/faq.html所解释的那样,在回答问题“当我生成报道报告时,为什么它们总是在各处显示100%的报道?”,
“Cobertura在生成报告时可能使用了错误的.ser文件。当您修改课程时,Cobertura会生成一个.ser文件,其中包含有关每个课程的基本信息。当您的测试运行时,Cobertura会添加其他信息。这个相同的数据文件。如果检测的类在运行时找不到数据文件,那么它们将创建一个新文件。在检测,运行和生成报告时使用相同的cobertura.ser文件非常重要。“
在我的情况下,当检测类在一个.ser中时我遇到了这个问题,并且在执行期间我生成了另一个.ser。从第二个.ser生成HTML报告“just”显示了问题中提到的问题。合并两个数据文件(.ser)并重新生成报告,解决了这个问题。
有关“合并数据文件”的信息,请参阅http://cobertura.sourceforge.net/commandlinereference.html。