【问题标题】:Ant build - Emma code instrumentation - JUnit tests need interfaces, Emma doesn't instrument themAnt 构建 - Emma 代码检测 - JUnit 测试需要接口,Emma 不检测它们
【发布时间】:2011-03-10 20:28:55
【问题描述】:
我有一个 Ant 构建文件,我在其中编译应用程序和测试的 Java 源代码、检测应用程序类、运行 JUnit 测试并生成 JUnit 和 Emma 代码覆盖率报告。为 JUnit 任务提供了检测类的路径。
问题是接口没有被检测(Emma FAQ),但我在测试中使用它们并且 JUnit 找不到它们。
我能想到 2 个解决方案:
- 不要在测试中使用接口(不利于对接口进行编程 - 它是否计入测试?)
- 复制检测类旁边的接口(硬编码接口的路径)
我应该如何处理和解决这个问题?
【问题讨论】:
标签:
java
ant
junit
instrumentation
emma
【解决方案1】:
在我看来,您好像在说 JUnit 有问题,因为接口不在类路径上?
通常的答案是把它们放在那里。
快速而肮脏的答案可能是将未检测类的类路径放入检测类路径之后的 juint 类路径中。类加载器应该使用它找到的第一个匹配项,因此将使用插桩实现而不是非插桩实现,但接口仍然可用。
如果这解决了您的问题,您可能希望用更健壮的东西替换快速和肮脏的东西,例如在与实现分开的 jar 中提供接口。