Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 艾玛是怎么工作的?_Java_Junit_Code Coverage_Emma_Bytecode Manipulation - Fatal编程技术网

Java 艾玛是怎么工作的?

Java 艾玛是怎么工作的?,java,junit,code-coverage,emma,bytecode-manipulation,Java,Junit,Code Coverage,Emma,Bytecode Manipulation,为了使用Emma,我们将首先使用Emma为罐子装上仪器。在此期间,将生成em元数据文件,并且当您在插入指令的jars上运行JUnit测试用例时,将生成ec文件。用于生成覆盖率报告 我的问题是,当我们运行测试用例时,我们没有指定em文件的路径,那么它如何能够生成ec文件呢?我还听说Emma在运行时使用端口。那个港口是什么 Emma在检测阶段使用一种称为字节码操作的功能。如果在反编译器中打开插入指令的类文件,您会注意到它会引入几行额外的代码 正是这个附加代码完成了报告。它将是一个简单的日志,指示特定

为了使用Emma,我们将首先使用Emma为罐子装上仪器。在此期间,将生成em元数据文件,并且当您在插入指令的jars上运行JUnit测试用例时,将生成ec文件。用于生成覆盖率报告


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

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

正是这个附加代码完成了报告。它将是一个简单的日志,指示特定行号处的代码已执行


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

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

如果您没有疑问,请您花些时间接受答案好吗?;)