【问题标题】:Using EvoSuite with JMockit for code coverage使用 EvoSuite 和 JMockit 进行代码覆盖
【发布时间】:2016-04-01 01:54:37
【问题描述】:

已使用 EvoSuite 创建了一个单元测试,并希望使用 maven build 对此单元测试进行代码覆盖率分析。当我运行 maven build 我得到...

JMockit Coverage 通过自定义类加载器 org.evosuite.runtime.instrumentation.EvoClassLoader 重新加载;

类 org.xyz.MyClass$1 未由 EvoSuite 检测。如果您以 EvoSuite 无法处理的方式运行 JUnit 测试,则可能会发生这种情况,其中某些类在测试运行之前加载为反射。有关此问题的可能解决方法,请参阅 EvoSuite 文档。

所以看起来正在破坏的代码是...... 如果(!InstrumentedClass.class.isAssignableFrom(clazz)){ String msg = "Class " + clazz.getName() + " EvoSuite 未检测到。" + "如果您以 EvoSuite 无法处理的方式运行 JUnit 测试,则可能会发生这种情况,在 " + “在运行测试之前加载了哪些类是反射。请参阅 EvoSuite 文档” + “有关此问题的可能解决方法。”; logger.error(msg); 问题=真; //抛出新的IllegalStateException(msg); // 抛出异常可能有点太极端了 }

是否可以通过 JMockit 运行 EvoSuite 单元测试?有什么建议吗?

【问题讨论】:

    标签: maven unit-testing classloader jmockit evosuite


    【解决方案1】:

    在阅读这个问题之前,我从来没有听说过 JMockit,所以它不是 EvoSuite 中不为人知的东西...... :(

    无论如何,我现在刚刚添加了一些关于它的文档:

    http://www.evosuite.org/documentation/measuring-code-coverage/

    您可以在此处阅读为什么覆盖率为 0%,以及可能的解决方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      • 2015-08-12
      • 2014-09-26
      • 2017-01-15
      • 2013-02-15
      相关资源
      最近更新 更多