Я использую последнюю банку Cobertura 2.0 и выполнил настройку, определенную здесь https://stackoverflow.com/a/5319237/870392.Ошибка Cobertura NoClassDefFoundError во время отключения Tomcat7
После выполнения моих тестовых случаев, когда я пытаюсь выключение кота (версия 7) для сбора данных покрытия я получаю следующее сообщение об ошибке:
Exception in thread "Thread-2" java.lang.NoClassDefFoundError: net/sourceforge/cobertura/coveragedata/TouchCollector$ApplyToClassDataLightClassmapListener
at net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesToSingleClassOnProjectData(TouchCollector.java:70)
at net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesOnProjectData(TouchCollector.java:58)
at net.sourceforge.cobertura.coveragedata.ProjectData.saveGlobalProjectData(ProjectData.java:324)
at net.sourceforge.cobertura.coveragedata.SaveTimer.run(SaveTimer.java:34)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: net.sourceforge.cobertura.coveragedata.TouchCollector$ApplyToClassDataLightClassmapListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
... 5 more
Некоторых дополнительные наблюдения
ссылается, класс присутствует в файле банка Cobertura.
недостающее класс статический вложенный класс cobertura github code
Был ссылка ошибка, связанная с этим для выпуска ранее Cobertura 3 March 2010, 1.9.4.1
Любые быстрые затруднительные, которые я могу сделать, чтобы затем восстановить cobertura из источника, чтобы исправить это?
UPDATE:
При дальнейших пробах и ошибках, это выглядит как что-то делать с остановленными крючками. Вместо WEB-INF/lib
я переместил cobertura.jar
в tomcat7/lib
, что означает, что банка теперь доступна до более поздней точки во время остановки tomcat. В результате предыдущая ошибка Cobertura NoClassDef исчезла, но я получаю ошибки NoClassDef для классов в моем приложении (предположительно, когда cobertura начинает пытаться записать данные покрытия для каждого из классов). Сбой потока cobertura и файл ser не обновляется.
Не могли бы вы попробовать версию 2.0.1, которая включает в себя несколько дополнительных исправлений. https://sourceforge.net/projects/cobertura/files/cobertura/2.0.1. – Steve