远程机器的 Jacoco 代码覆盖率
Jacoco code coverage for remote machine
我试图找到这个答案,但几乎找不到。我正在做 API 测试,在这个过程中我需要从我的本地机器调用其余的 API。本地机器包含 maven 项目和一个框架来调用各自的 rest API.
我需要检查远程Rest的代码覆盖率API,并根据代码覆盖率形成一个报告。请帮忙,怎么做?
注意:我发现这个 link 很有用,但没有详细说明要做什么?
您可能会进行一些文件复制 - 取决于您 运行 测试的方式。
JaCoCo 运行 作为 java 代理人。因此,您通常会添加链接到应用程序服务器启动脚本的文档中提到的 javaagent 参数。
-javaagent:[yourpath/]jacocoagent.jar=[option1]=[value1],[option2]=[value2]
所以它看起来像:
java -javaagent: -jar myjar.jar
使用tomcat,您可以将“-javaagent”部分添加到JAVA_OPTS 或CATALINA_OPTS 环境变量中。其他服务器应该类似。
这将创建 jacoco*.exec 文件。您需要将它们复制回您的构建或 CI 服务器以显示其结果(例如,如果您使用声纳,则在 运行 声纳报告器之前需要这些文件)。只包含您感兴趣的包很重要。
您还可以为每个测试风格创建一个 jacoco.exec 文件(jacoco.exec 用于单元测试,jacoco-it.exec 用于集成测试,jacoco-at.exec 用于应用程序测试).
而且我不会将覆盖率与性能测试混为一谈 - 只是提一下。
JBoss
在 Whosebug 上有一些示例
我试图找到这个答案,但几乎找不到。我正在做 API 测试,在这个过程中我需要从我的本地机器调用其余的 API。本地机器包含 maven 项目和一个框架来调用各自的 rest API.
我需要检查远程Rest的代码覆盖率API,并根据代码覆盖率形成一个报告。请帮忙,怎么做?
注意:我发现这个 link 很有用,但没有详细说明要做什么?
您可能会进行一些文件复制 - 取决于您 运行 测试的方式。
JaCoCo 运行 作为 java 代理人。因此,您通常会添加链接到应用程序服务器启动脚本的文档中提到的 javaagent 参数。
-javaagent:[yourpath/]jacocoagent.jar=[option1]=[value1],[option2]=[value2]
所以它看起来像:
java -javaagent: -jar myjar.jar
使用tomcat,您可以将“-javaagent”部分添加到JAVA_OPTS 或CATALINA_OPTS 环境变量中。其他服务器应该类似。
这将创建 jacoco*.exec 文件。您需要将它们复制回您的构建或 CI 服务器以显示其结果(例如,如果您使用声纳,则在 运行 声纳报告器之前需要这些文件)。只包含您感兴趣的包很重要。
您还可以为每个测试风格创建一个 jacoco.exec 文件(jacoco.exec 用于单元测试,jacoco-it.exec 用于集成测试,jacoco-at.exec 用于应用程序测试).
而且我不会将覆盖率与性能测试混为一谈 - 只是提一下。
JBoss
在 Whosebug 上有一些示例