java - emma是否支持多个进程并发写入 session 文件?

标签 java emma

如果我在 emma 中检测两个 jar,将它们指向同一个 emma session 文件,然后同时运行它们(例如,客户端和服务器),我应该期望事情正常工作还是惨败?这些 jar 是用公共(public)源构建的,所以我预计元数据不会出现问题。

我在文档中没有看到任何有关此内容的内容,因此如果有的话,肯定会欢迎指针。

最佳答案

不,不能。当流程大部分结束时,艾玛会写出检测结果。它会覆盖现有位置的任何文件,但它也会写出一个文本文件,并且不直接支持合并或合并多个报告。

但是,有一个分析工具可以帮助您执行此操作,称为 Grobo 。它具有“安全”分析模式,将每个事件写入日志文件,然后关闭该日志文件。这可能允许多个实例运行并输出到同一位置,并为您提供最新的分析信息,而无需关闭进程。旧版本曾经允许合并覆盖率报告,但最新版本没有提及。我过去曾使用过它,Tomcat 在完成写入之前杀死了 Emma 分析线程,在这种情况下,安全模式可以确保所有覆盖数据的写入都没有问题。它还可用于通过一组测试来获取部分覆盖率,这对于集成测试有时非常有用。

另一种选择,也可能是最好的选择,是 Cobertura 。它能够合并多个报告文件,因此您可以使用不同的输出文件运行每个 Java 进程,然后在最后将它们全部合并以生成合并覆盖率的报告。

关于java - emma是否支持多个进程并发写入 session 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1286099/

相关文章:

java - 如何在 Tomcat 中启用 Java 断言

java - 在 selenium 中输入 iframe

java - 开源 Java 日期和时间选择器

java - 私有(private)构造函数 junit/emma 的覆盖范围

junit - 使用assertTrue而不是assertNull时丢失分支

android - 检查 android 库的测试覆盖率的正确方法是什么?

java - 有没有一种方法可以将数组名称作为字符串获取,以便我可以在程序中调用正确的数组名称?

java - 设置数独单元格的颜色

java - 运行 UI selenium 功能测试后的应用程序代码覆盖率

mysql - 通过远程主机连接在 Vagrant 机器上运行的 SQL?