Code coverage of client/server web application(客户端/服务器 Web 应用程序的代码覆盖率)
问题描述
我正在编写一个多模块应用程序.一些模块只是基本的 Java 库,然后包含在 webapp 的 WAR 中.
I am writing a multi-module application. Some of the modules are just basic Java libraries which are then included in the WAR of a webapp.
我想在以下场景中运行代码覆盖:
I would like to run code coverage in the following scenario:
我正在通过一个通过 Maven 启动的嵌入式 Jetty 运行 webapp.
I am running the webapp through an embedded Jetty that is started via Maven.
我有针对 webapp 执行 HTTP 请求的测试.
I have tests which are executing HTTP requests against the webapp.
我想获得包含在 webapp 和测试中的代码.
I would like to get code covered in the webapp and also by the tests.
这可能吗?如何使用 Cobertura、JaCoCo 或 Emma 来实现?据我了解,在这种情况下,代码覆盖率只会覆盖客户端代码.我说的对吗?
Is this possible and how can it be achieved with Cobertura, JaCoCo or Emma? From what I understand, the code coverage will only cover the client-side code in this scenario. Am I correct?
推荐答案
我是这样实现的
假设你已经有一个最小的 pom.xml 配置:
Assuming you already have a minimal pom.xml config:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</
<version>0.7.4.201502262128</vers
</plugin>
下载JaCoCo的代理并将
jacocoagent.jar
复制到合适的位置(例如$HOME/tools/jacocoagent0.7.4.jar
)
Download JaCoCo's agent and copy
jacocoagent.jar
to a suitable location (e.g.$HOME/tools/jacocoagent0.7.4.jar
)
通过以下方式将 JaCoCo 的代理连接到 Maven 的 JVM:
Attach JaCoCo's agent to Maven's JVM via:
export MAVEN_OPTS="$MAVEN_OPTS
-javaagent:$HOME/tools/jacocoagent0.7.4.jar=output=tcpserver,port=6300"
使用嵌入式码头服务器运行您的应用程序,例如mvn jetty:run
运行您的集成测试
在另一个 shell 中,通过 mvn jacoco:dump jacoco:report
In another shell, dump and report via mvn jacoco:dump jacoco:report
在 ./target/site/index.html
上打开您的报告(默认)
Open your report on ./target/site/index.html
(by default)
这篇关于客户端/服务器 Web 应用程序的代码覆盖率的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:客户端/服务器 Web 应用程序的代码覆盖率
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01