使用EvoSuite创建了单元测试,并希望使用maven build对此单元测试进行代码覆盖率分析。当我运行maven build时,我得到了......
通过自定义类加载器重新加载JMockit Coverage org.evosuite.runtime.instrumentation.EvoClassLoader;
和
类org.xyz.MyClass $ 1未经EvoSuite检测。如果您以未经EvoSuite处理的方式运行JUnit测试,可能会发生这种情况,其中一些类在运行测试之前被反射。有关此问题的可能解决方法,请参阅EvoSuite文档。
看起来破解的代码就是...... if(!InstrumentedClass.class.isAssignableFrom(clazz)){ String msg =“Class”+ clazz.getName()+“未被EvoSuite检测。”+ “如果你以一种未被EvoSuite处理的方式运行JUnit测试,可能会发生这种情况,在”+中 “在运行测试之前,某些类被加载了。请参阅EvoSuite文档”+ “为此问题提供可能的解决方法。”; logger.error(MSG); problem = true; //抛出新的IllegalStateException(msg); //抛出异常可能有点过于极端}
是否可以通过JMockit运行EvoSuite单元测试?有什么建议吗?
答案 0 :(得分:0)
在阅读这个问题之前,我从未听说过JMockit,所以它不是EvoSuite中的雷达...... :(
无论如何,我现在刚刚添加了一些关于它的文档:
http://www.evosuite.org/documentation/measuring-code-coverage/
你可以在那里阅读为什么你得到0%的覆盖率,以及可能的解决方法。