艾玛是如何工作的?

时间:2011-09-15 15:18:27

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

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

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

2 个答案:

答案 0 :(得分:1)

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

这是执行报告的附加代码。它将像一个简单的日志一样简单,表明该特定行号的代码已经执行。

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

答案 1 :(得分:1)

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

相关问题