Tag: emma

如何使用emma为多模块maven项目计算Hudson中的代码覆盖率,但只运行一次测试

我们有几个多模块项目,我想运行emma,但我不希望测试运行两次,因为这会导致Hudson项目主页上的误导性统计信息,因为unit testing会被计算两次。 对于单个模块项目,我们可以省略安装目标并只使用clean emma:emma来运行测试一次,有没有什么方法我们只能使用emma检测的字节代码进行测试,然后在不运行测试的情况下构建和安装项目工件第二次? 使用-Dmaven.tests.skip = true会导致emma失败。 对于完整版本(即mvn版本:执行),测试应该是未经检测的。

为什么艾玛没有全面报道最后一块?

我不明白为什么艾玛没有给“最后”块提供完整的代码覆盖。 我做了一个简短的示例程序来演示这个。 当我执行程序时,它显示: try finally 所以我不明白为什么最终被标记为红色(未执行)并且“finally”“println”被标记为黄色(部分执行)。 我错过了什么吗? 如何让emma了解finally块被覆盖? 谢谢!

我如何让Maven的Emma或Cobertura报告其他模块中的源代码报道?

我有一个带有Java代码的多模块Maven设置。 我的unit testing,在其中一个模块中,在多个模块中练习代码。 当然,模块具有相互依赖性,并且在测试执行之前根据需要编译所有相关模块中的代码。 那么:我如何获得整个代码库的覆盖率报告? 注意:我不是要问如何在多个模块中组合测试覆盖率的结果。 我问如何使用来自多个模块的检测代码在单个模块中获得测试的覆盖率。 任何对前者感兴趣的人都可以参考其他 问题 ,以及Crowne为Maven Dashboard和Sonar提出的建议。 我成功地使用纯Ant获得完整的报道。 [编辑:]我将开发运行时目录中的所有jar都检测到了一个临时目录; 将临时目录添加到类路径中; 然后使用批处理测试从Ant运行测试。 Ant可以从Maven运行,但这里的挑战是无缝集成(即,自动将所有类路径和源路径元素从Maven提供给Ant),这就是为什么我没有使用Maven的工具来实现此目的。 关于集成测试还有其他 问题 。 但是,默认情况下,默认情况下,每个项目的报告仅报告同一项目中代码的覆盖率,而我的测试则在多个项目中执行代码。 这篇西class牙语的文章可能是相关的。 这是另一篇特定于Seam的文章 。

使用Junit的EMMA,我应该使用检测类或java类进行测试吗?

它说,我已经为emma / junit的ANT脚本编写本教程 在的元素中,更改实际类的位置,以便指向$ {instr.dir}属性而不是普通的target / classes文件夹。 这是我的针对Apache Ant的build.xml的emma部分( pastebin链接到完整的build.xml) emma : JUNIT失败结果的构建部分结果,指向${instr.dir} emmatest: [instr] processing instrumentation path … [instr] instrumentation path processed in 109 ms [instr] [6 class(es) instrumented, 0 resource(s) copied] [instr] metadata merged into [C:\Users\Michael\workspace\log4jassignment.s06005586\build\emma-reports\metadata.emma] {in 42 ms} [junit] Test test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest FAILED junitreport的构建部分结果: JUNIT Pass Result,指向real classes ${build.classes} test: [junit] Running test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest […]

使用emmarun(未找到主要方法)

我在一个空目录中有一个超简单的文件: public class Test { public static void main(String[] args) { System.out.println(“Test”); } } 以下工作如预期 javac Test.java java Test > Test 我在Mac OS X上,使用emma-2.0.5312和java 1.7.0_40 emma.jar已安装到/ Library / Java / Extensions,因此可行 java emmarun (显示使用emmarun的帮助) 接下来我跑 java emmarun -cp . Test 我收到错误: emmarun: [MAIN_METHOD_NOT_FOUND] application class [Test] does not have a runnable public main() method Exception […]

完全覆盖的代码的EclEmma覆盖率是否低于100%?

我刚写了一些简单的示例代码,以确保我正确安装了EclEmma。 我没有得到100%的报道,我不明白为什么。 突出显示它与类名有关。 这是我的代码,以及相应的JUnit测试,EclEmma强调它的方式: 覆盖结果显示Arithmetic中的三个指令没有被击中,即使两个实际方法似乎都被完全覆盖: 我已经阅读了关于基本块覆盖的EclEmma文档 ,但我仍然感到困惑。 我不确定哪些基本块被遗漏了。 起初,我认为EclEmma可能只是忽略了类的字节码,但ArithmeticTest似乎处理得很好。 我有两个密切相关的问题: 这是否表示我安装/配置EclEmma的方式有问题? 完全覆盖的代码具有高但不是100%的EMMA覆盖率是正常/可接受的,如果是这样,它是如何工作的?