Использование EvoSuite с JMockit для покрытия кода
Создали модульный тест с использованием EvoSuite и хотите использовать сборку maven для анализа покрытия кода в этом модульном тесте. Когда я запускаю maven build, я получаю...
JMockit Coverage был перезагружен через пользовательский загрузчик классов org.evosuite.runtime.instrumentation.EvoClassLoader;
а также
Класс org.xyz.MyClass$1 не был оборудован EvoSuite. Это может произойти, если вы выполняете тесты JUnit способом, который не обрабатывается EvoSuite, в котором некоторые классы загружаются для отражения перед запуском тестов. Консультируйтесь с документацией EvoSuite для возможных обходных путей для этой проблемы.
Таким образом, кажется, что код, который нарушает, это... if (!InstrumentedClass.class.isAssignableFrom(clazz)) { String msg = "Class " + clazz.getName() + "не был обработан EvoSuite. " + "Это может произойти если вы выполняете тесты JUnit способом, который не обрабатывается EvoSuite, в "+", который загружается некоторыми классами, будет отражено до запуска тестов. Обратитесь к документации EvoSuite "+" для возможных обходных путей для этой проблемы."; logger.error(MSG); проблема = правда; // бросаем новое IllegalStateException(msg); // бросить исключение может быть слишком экстремальным}
Можно ли запустить модульный тест EvoSuite через JMockit? Какие-либо предложения?
1 ответ
До прочтения этого вопроса я никогда не слышал о JMockit, так что это не то, что было в поле зрения EvoSuite...:(
во всяком случае, я просто добавил документацию по этому адресу:
http://www.evosuite.org/documentation/measuring-code-coverage/
Вы можете прочитать там, почему вы получаете 0% покрытия, и возможные обходные пути для него.