我的单元测试生成了非常好的 Cobertura 代码覆盖率报告。然而,在从 Java 1.6 升级到 Java 1.7 并使用 Cobertura 2.0.3 时,我开始收到以下错误。我调查了this Cobertura Mailing list entry关于类路径问题、Java 7、升级版本和检测,但我仍然遇到问题。有什么建议吗?
[testng] Exception in thread "Thread-1" java.lang.ExceptionInInitializerError
[testng] at org.my.code.MyFile.__cobertura_init(MyFile.java)
[testng] at org.my.code.MyFile.<clinit>(MyFile.java)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[testng] at java.lang.reflect.Method.invoke(Method.java:601)
[testng] at net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesToSingleClassOnProjectData(TouchCollector.java:121)
[testng] at net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesOnProjectData(TouchCollector.java:107)
[testng] at net.sourceforge.cobertura.coveragedata.ProjectData.saveGlobalProjectData(ProjectData.java:272)
[testng] at net.sourceforge.cobertura.coveragedata.SaveTimer.run(SaveTimer.java:33)
[testng] at java.lang.Thread.run(Thread.java:722)
[testng] Caused by: java.lang.IllegalStateException: Shutdown in progress
[testng] at java.lang.ApplicationShutdownHooks.add(ApplicationShutdownHooks.java:66)
[testng] at java.lang.Runtime.addShutdownHook(Runtime.java:209)
[testng] at net.sourceforge.cobertura.coveragedata.ProjectData.initialize(ProjectData.java:239)
[testng] at net.sourceforge.cobertura.coveragedata.ProjectData.getGlobalProjectData(ProjectData.java:209)
[testng] at net.sourceforge.cobertura.coveragedata.TouchCollector.<clinit>(TouchCollector.java:46)
[testng] ... 11 more
cb.html:
[cobertura-report] The jvmargs attribute is deprecated. Please use nested jvmarg elements.
最佳答案
不确定是什么原因导致此问题,但这是已知的 cobertura issue
关于java - Cobertura 与 jdk1.7 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20095640/