【问题标题】:How does Emma work?艾玛是如何工作的?
【发布时间】:2011-09-15 15:18:26
【问题描述】:

为了使用 Emma,我们将首先使用 Emma 检测 jar。在此期间,将生成 em 元数据文件,并且当您在已检测的 jar 上运行 JUnit 测试用例时,将生成 ec 文件。用于生成覆盖率报告。

我的问题是我们在运行测试用例时没有指定 em 文件的路径,那么它是如何生成 ec 文件的呢?我也听说 Emma 在运行时使用端口。那个端口是什么?

【问题讨论】:

    标签: java junit code-coverage emma bytecode-manipulation


    【解决方案1】:

    Andrew,默认情况下 EMMA 使用当前文件夹来查找 coverage.em 文件。我不相信它正在侦听任何 TCP 端口,我通过 EMMA 源代码进行了快速扫描,但找不到任何对套接字的引用。它仅使用 URL 从类路径加载类文件以进行检测。

    【讨论】:

    • 如果它消除了您的疑问,您能否花一些时间接受答案? ;)
    【解决方案2】:

    Emma 在检测阶段使用了一种称为字节码操作的功能。如果您在反编译器中打开检测的类文件,您会注意到它会引入几行额外的代码。

    正是这个额外的代码来进行报告。这将是一个简单的日志,表明该特定行号的代码已执行。

    当您生成报告时,emma 使用ec 文件生成报告的人类可读格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多