Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EMMA对于Junit,我应该使用插入指令的类还是java类进行测试?_Java_Ant_Junit_Emma - Fatal编程技术网

EMMA对于Junit,我应该使用插入指令的类还是java类进行测试?

EMMA对于Junit,我应该使用插入指令的类还是java类进行测试?,java,ant,junit,emma,Java,Ant,Junit,Emma,我一直在为emma/junit编写ANT脚本,它说 在的元素中,更改实际类的位置,以便指向${instr.dir}属性,而不是普通的目标/类文件夹 下面是我的emma部分,来自我的build.xml for ApacheAnt(链接到full build.xml) junitreport的生成部分结果:junitpassresult,指向real classes${Build.classes} emmatest: [instr] processing instrumentation path

我一直在为emma/junit编写ANT脚本,它说

元素中,更改实际类的位置,以便指向${instr.dir}属性,而不是普通的目标/类文件夹

下面是我的emma部分,来自我的build.xml for ApacheAnt(链接到full build.xml)

junitreport
的生成部分结果:junitpassresult,指向
real classes${Build.classes}

 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
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一起通过。我还非常确信我的
覆盖率文件
没有被创建,因为
附录布局测试的JUNIT失败了

我是否使用错误的类集进行测试?还是我错过了什么

更新:2012年8月28日下午6:21

然后我改变了主意

<test 
name="test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest"
todir="${coverage.dir}">
<test 
name="test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest"
todir="${coverage.dir}">
更新时间:下午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.<init>()V
[junit] java.lang.ClassFormatError: Illegal local variable table length 17 in method test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest.<init>()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.<init>()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.<init>()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
emma测试:
[instr][EMMA v2.1,build 5320(stable)(2005/06/20 22:08:27)]
[instr]仪器路径:
[说明]{
[instr]C:\Users\Michael\workspace\log4jassignment.s06005586\build\classes
[说明]}
[instr]仪表输出模式:复制
[instr]元数据输出文件:C:\Users\Michael\workspace\log4jassignment.s06005586\build\emma reports\metadata.emma
[instr]元数据输出合并模式:true
[instr]正在处理目录路径项[C:\Users\Michael\workspace\log4jassignment.s06005586\build\classes]。。。
[instr]147毫秒内处理的仪器路径
[instr][6类已插入指令,复制了0个资源]
[instr]元数据包含6个条目
[instr]元数据合并到[C:\Users\Michael\workspace\log4jassignment.s06005586\build\emma reports\metadata.emma]{in 49 ms}
[junit]运行test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest
[junit]测试套件:test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest
[junit]测试运行:1,失败:0,错误:1,运行时间:0秒
[junit]测试运行:1,失败:0,错误:1,运行时间:0秒
[junit]导致了一个错误
[junit]方法测试中非法的局部变量表长度17.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest.()V
[junit]java.lang.ClassFormatError:方法test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest中的非法局部变量表长度17。()V
[junit]位于java.lang.Class.forName0(本机方法)
[junit]位于java.lang.Class.forName(未知源)
[junit]TEST TEST.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest失败
[junit]Running test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.stress test
[junit]测试套件:test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest
[junit]测试运行:1,失败:0,错误:1,运行时间:0秒
[junit]测试运行:1,失败:0,错误:1,运行时间:0秒
[junit]导致了一个错误
[junit]在method test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest中的分支目标11处预期有堆栈映射帧。()V在偏移量4处
[junit]java.lang.VerifyError:在method test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest中,在分支目标11处应为stackmap帧。()偏移量4处为V
[junit]位于java.lang.Class.forName0(本机方法)
[junit]位于java.lang.Class.forName(未知源)
[junit]TEST.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest失败
[junit]测试失败
什么是
[junit]java.lang.ClassFormatError:方法test.nz.ac.massey.cs.sdc.log4jassignment.s0605586.AppenderLayoutTest中非法的局部变量表长度17。()V

您能尝试替换吗




最后,我想请您在测试中加入一些
sysout
,看看测试中出现了什么问题。这可能与我感觉的配置有关。

查看您共享的最新跟踪,它似乎可以使用

-XX:-UseSplitVerifier
作为VM参数,以消除与JDK7相关的错误


或者

谢谢我刚才试过了,我更新了我的问题。但是测试仍然失败,我觉得我现在离解决方案有点近了。任何其他想法都将不胜感激!我想请你在测试中加入一些系统,看看测试中出现了什么问题。这可能与我感觉的配置有关。我没有太多地使用
ant
,我从中了解到将属性
showoutput=“true”
添加到我的
任务中,但没有打印
sysout
。我正在使用
emma.jar
emma\u ant.jar
中的默认配置。这意味着没有执行您的测试类。。。检查路径
${instr.dir}
是否存在插入指令的类?在
emma instr
中有两个文件夹,可以尝试删除所有内容并再次测试吗。
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.<init>()V
[junit] java.lang.ClassFormatError: Illegal local variable table length 17 in method test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest.<init>()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.<init>()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.<init>()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
<test 
name="test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest"
todir="${coverage.dir}">
<batchtest>
    <fileset dir="${instr.dir}" includes="**/*Test.class" />
</batchtest>
-XX:-UseSplitVerifier