使用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 [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.504 sec [junit] Running test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest [junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 0.526 sec
我想知道为什么我的JUNIT测试AppenderLayoutTest
与emma失败但是传递了junit。 我也非常有信心我的coverage file
没有被创建,因为AppenderLayoutTest
的JUNIT失败了。
我用错误的类测试了吗? 或者我错过了什么?
更新:2012年8月28日下午6:21
然后我改变了
同
并且emma
的更新的Build Section结果: JUNIT失败结果,指向${instr.dir}
其中..
emmatest: [instr] processing instrumentation path ... [instr] instrumentation path processed in 105 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 89 ms} [junit] TEST test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest FAILED [junit] TEST test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest FAILED [junit] Tests FAILED
更新:下午7:02
我添加了 ,这是输出
emmatest: [instr] [EMMA v2.1, build 5320 (stable) (2005/06/20 22:08:27)] [instr] instrumentation path: [instr] { [instr] C:\Users\Michael\workspace\log4jassignment.s06005586\build\classes [instr] } [instr] instrumentation output mode: copy [instr] metadata output file: C:\Users\Michael\workspace\log4jassignment.s06005586\build\emma-reports\metadata.emma [instr] metadata output merge mode: true [instr] processing dir path entry [C:\Users\Michael\workspace\log4jassignment.s06005586\build\classes] ... [instr] instrumentation path processed in 147 ms [instr] [6 class(es) instrumented, 0 resource(s) copied] [instr] metadata contains 6 entries [instr] metadata merged into [C:\Users\Michael\workspace\log4jassignment.s06005586\build\emma-reports\metadata.emma] {in 49 ms} [junit] Running test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest [junit] Testsuite: test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec [junit] Caused an ERROR [junit] Illegal local variable table length 17 in method test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest.()V [junit] java.lang.ClassFormatError: Illegal local variable table length 17 in method test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest.()V [junit] at java.lang.Class.forName0(Native Method) [junit] at java.lang.Class.forName(Unknown Source) [junit] TEST test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest FAILED [junit] Running test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest [junit] Testsuite: test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec [junit] Caused an ERROR [junit] Expecting a stackmap frame at branch target 11 in method test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest.()V at offset 4 [junit] java.lang.VerifyError: Expecting a stackmap frame at branch target 11 in method test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest.()V at offset 4 [junit] at java.lang.Class.forName0(Native Method) [junit] at java.lang.Class.forName(Unknown Source) [junit] TEST test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest FAILED [junit] Tests FAILED
什么是[junit] java.lang.ClassFormatError: Illegal local variable table length 17 in method test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest.()V
你能尝试更换吗?
同
最后,我会要求你在测试中加入一些sysout
,看看测试中出了什么问题。 这可能与我觉得的配置有关。
查看您分享的最新跟踪似乎可以使用
-XX:-UseSplitVerifier
作为VM参数来摆脱与JDK7相关的错误。
或者检查一下