为了使用 Emma,我们将首先使用 Emma 检测 jar。在此期间,将生成 em 元数据文件,并且当您在已检测的 jar 上运行 JUnit 测试用例时,将生成 ec 文件。用于生成覆盖率报告。
我的问题是我们在运行测试用例时没有指定 em 文件的路径,那么它如何生成 ec 文件?我也听说 Emma 在运行时使用端口。那个端口是什么?
为了使用 Emma,我们将首先使用 Emma 检测 jar。在此期间,将生成 em 元数据文件,并且当您在已检测的 jar 上运行 JUnit 测试用例时,将生成 ec 文件。用于生成覆盖率报告。
我的问题是我们在运行测试用例时没有指定 em 文件的路径,那么它如何生成 ec 文件?我也听说 Emma 在运行时使用端口。那个端口是什么?
Emma 在其检测阶段使用了一种称为字节码操作的功能。如果您在反编译器中打开检测类文件,您会注意到它会引入几行额外的代码。
正是这个额外的代码进行了报告。这将是一个简单的日志,表明该特定行号的代码已执行。
当您生成报告时,emma 使用该ec
文件生成报告的人类可读格式。
Andrew,默认情况下 EMMA 使用当前文件夹来查找 coverage.em 文件。我不相信它正在侦听任何 TCP 端口,我通过 EMMA 源代码进行了快速扫描,但找不到任何对套接字的引用。它仅使用 URL 从类路径加载类文件以进行检测。