NoClassDefFoundError при попытке использовать покрытие JMockit

Я пытаюсь использовать возможности покрытия кода JMockit. Использование параметра JVM

-javaagent:jmockit.jar=coverage=.*MyClass.java:html::

Я могу запускать свои тесты (jmockit.jar иcoverage.jar находятся в пути к классам), к сожалению, в моем файле журнала говорится:

Loaded external tool: mockit.coverage.CodeCoverage=.*MyClass.java:html::
Loaded external tool: mockit.integration.junit3.JUnitTestCaseDecorator
Loaded external tool: mockit.integration.junit4.JUnit4ClassRunnerDecorator
Exception in thread "Thread-0" java.lang.NoClassDefFoundError
    at mockit.coverage.CodeCoverage$OutputFileGenerator.run(CodeCoverage.java:56)

... и файл покрытия не создается. Кто-нибудь заставил JMockit Coverage работать? Если да, какие мысли о том, что вызывает эту ошибку? Спасибо...

Ответ: Мне нужно было добавить покрытие к записям начальной загрузки, а не только к пользовательским записям (в конфигурации запуска Eclipse)

Фактический ответ Фактический ответ заключается в том, что я запускал тест с JUnit 3, но для покрытия требуется JUnit 4. Это исправило ситуацию, и мне не нужно было добавлять какие-либо записи начальной загрузки.


person Epaga    schedule 16.10.2008    source источник


Ответы (2)


Я проводил тест с JUnit 3, но для покрытия требуется JUnit 4. Это исправило ситуацию, и мне не нужно было добавлять какие-либо записи начальной загрузки.

person Epaga    schedule 17.10.2008

Случайная догадка... Находится ли cover.jar в пути к классам, который использует jmockit - может быть, он другой?

person Chris Kimpton    schedule 16.10.2008
comment
Любая идея, как я могу узнать, какой путь к классам он использует и отличается ли он? - person Epaga; 16.10.2008