健身房网站建设案例建设营销型网站服务
- 作者: 五速梦信息网
- 时间: 2026年04月20日 10:39
当前位置: 首页 > news >正文
健身房网站建设案例,建设营销型网站服务,wordpress电影模板,wordpress代码大全JDK多版本集成 Jacoco 配置指南 本篇相关 JDK 版本配置如下#xff1a; JDK8 JDK11 JDK17 Jacoco 是什么 Jacoco 是一个用于Java程序的代码覆盖率报告工具。它通过动态分析#xff08;在代码执行时收集数据#xff09;来生成代码覆盖率报告文件。Jacoco 支持多种覆盖率标… JDK多版本集成 Jacoco 配置指南 本篇相关 JDK 版本配置如下 JDK8 JDK11 JDK17 Jacoco 是什么 Jacoco 是一个用于Java程序的代码覆盖率报告工具。它通过动态分析在代码执行时收集数据来生成代码覆盖率报告文件。Jacoco 支持多种覆盖率标准包括行覆盖率、分支覆盖率和复杂度覆盖率。 代码覆盖率 代码覆盖率是指单元测试覆盖了多少程序代码是评估测试的有效性和代码质量的关键指标。 代码覆盖率的重要性 质量保证代码覆盖率是衡量软件测试完整性的关键指标。高覆盖率意味着代码的大部分都经过了测试减少了出错的可能性。 发现未测代码通过查看覆盖率报告文件能够识别哪些代码没有被测试到从而可以针对性地增加测试用例。 重构和维护假如某一个方法不能单测那么说明这个方法是需要重构的。在重构过程中高覆盖率有助于减少引入新错误的风险。 为什么要用 Jacoco 易于集成Jacoco 可以集成到Java项目中支持Maven、Gradle等构建工具。 非侵入式Jacoco 在运行时收集信息无需修改代码。 多种覆盖率指标Jacoco 提供了行覆盖、分支覆盖等多种覆盖率指标。 生成详细报告能生成单测覆盖率报告浏览器打开index.html即可看到哪些代码被覆盖整体覆盖率多少等。 JDK8 集成 Jacoco 生成单测覆盖率报告 版本 Java8 Spring Boot2.2.2.RELEASE Jacoco0.8.10 父pom.xml依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactId /dependency静态Mock依赖用于测试静态方法 dependencygroupIdorg.powermock/groupIdartifactIdpowermock-api-mockito2/artifactIdversion2.0.9/version /dependency dependencygroupIdorg.powermock/groupIdartifactIdpowermock-module-junit4/artifactIdversion2.0.9/version /dependencyTipspowermock 2.0.9 版本不能与 junit5 集成。 父pom.xml插件配置 plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.11.0/versionconfigurationsource1.8/sourcetarget1.8/target/configuration /plugin plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-surefire-plugin/artifactIdversion3.0.0-M5/versionconfiguration!– 执行单测 –skipfalse/skip/configuration /plugin plugingroupIdorg.jacoco/groupIdartifactIdjacoco-maven-plugin/artifactIdversion\({org.jacoco.version}/versionconfigurationincludesincludecom/**/*/include/includes/configurationexecutionsexecutionidpre-test/idgoalsgoalprepare-agent/goal/goals/execution/executions /plugin子pom.xml启动类构建配置 buildfinalName项目名/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/pluginplugingroupIdorg.jacoco/groupIdartifactIdjacoco-maven-plugin/artifactIdversion\){org.jacoco.version}/versionexecutionsexecutionidreport-aggregate/idphasetest/phasegoalsgoalreport-aggregate/goal/goals/execution/executions/plugin/plugins /build单元测试代码必须写在如下工程目录src/test/java不允许写在业务代码目录下。源码构建时会跳过此目录而单元测试框架默认是扫描此目录。 单测怎么写参考之前的文章Mockito单测之道 运行命令生成单测报告mvn test。 在项目编译后的 target 文件夹中找到生成单测覆盖率报告文件index.html 点击可以看到覆盖率相关参数 指标参数解释 Instructions指令 指令覆盖率是基于最低级别的代码执行——Java字节码指令。即使一行代码包含了多个Java字节码指令这些指令可能会部分被执行。 Branches分支 衡量在条件语句如 if 和 switch中执行的分支数。用于评估条件语句的覆盖程度。 Cyclomatic Complexity圈复杂度 测试用例覆盖了多少种可能的执行路径或决策点如if条件、循环等。 Lines行 有多少行代码被测试用例执行过。 Methods方法 检查类中的每个方法是否至少被测试用例执行过一次。 Classes类 如果一个类中至少有一个方法被测试覆盖那么这个类就被认为是覆盖的。 JDK11 集成 Jacoco 生成单测覆盖率报告 版本 Java11 Spring Boot2.2.2.RELEASE Jacoco0.8.10 配置调整较少但对应的单测代码需要微调。 父pom.xml插件配置 plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.11.0/versionconfigurationsource11/sourcetarget11/target/configuration /plugin plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-surefire-plugin/artifactIdversion3.0.0-M5/versionconfiguration!– 执行单测 –skipfalse/skip/configuration /plugin plugingroupIdorg.jacoco/groupIdartifactIdjacoco-maven-plugin/artifactIdversion\({org.jacoco.version}/versionconfigurationincludesincludecom/**/*/include/includes/configurationexecutionsexecutionidpre-test/idgoalsgoalprepare-agent/goal/goals/execution/executions /plugin子pom.xml启动类构建配置 buildfinalNamemgt-system-web/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/pluginplugingroupIdorg.jacoco/groupIdartifactIdjacoco-maven-plugin/artifactIdversion\){org.jacoco.version}/versionexecutionsexecutionidreport-aggregate/idphasetest/phasegoalsgoalreport-aggregate/goal/goals/execution/executions/plugin/plugins/buildJDK17 集成 Jacoco 生成单测覆盖率报告 版本 Java17 Spring Boot3.0.2 Jacoco0.8.10 父pom.xml插件配置 buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource17/sourcetarget17/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion\({spring-boot.version}/versionconfigurationmainClasscom.xinluo.flup.FlupDddApplication/mainClassskiptrue/skip/configurationexecutionsexecutionidrepackage/idgoalsgoalrepackage/goal/goals/execution/executions/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-surefire-plugin/artifactIdversion3.2.2/versionconfigurationskipfalse/skip/configuration/pluginplugingroupIdorg.jacoco/groupIdartifactIdjacoco-maven-plugin/artifactIdversion\){org.jacoco.version}/versionconfigurationincludesincludecom//*/include/includes/configurationexecutionsexecutionidpre-test/idgoalsgoalprepare-agent/goal/goals/execution/executions/plugin/plugins!– 打包xml –resourcesresourcedirectorysrc/main/java/directoryfilteringfalse/filteringincludesinclude/xml/*.xml/include/includes/resourceresourcedirectorysrc/main/resources/directory/resource/resources /build子pom.xml启动类构建配置 buildfinalNameflup-web/finalNamepluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource17/sourcetarget17/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationincludeSystemScopetrue/includeSystemScope/configuration/pluginplugingroupIdorg.jacoco/groupIdartifactIdjacoco-maven-plugin/artifactIdversion${org.jacoco.version}/versionexecutionsexecutionidreport-aggregate/idphasetest/phasegoalsgoalreport-aggregate/goal/goals/execution/executions/plugin/plugins /build 总结 上述JDK8、JDK11 版本配置均能在 Jenkins 上集成单测。有个注意的点是本地 JDK 版本应和 Jenkins 上配置的 JDK 版本一致。 从实战来看编写单测的时间不亚于编码的时间但从长远来看对于整个软件的开发过程是有益的。单测也是确保代码质量和可维护性的关键工具。 Jacoco 在不同版本的 JDK 上的兼容性和在 Jenkins 上的集成能力成为我们优先考虑的覆盖率工具。从公司领导的角度来看他们也需要这样的覆盖率指标来看单测标准的落地情况。然而作为技术人员我们不是为了堆覆盖率完成覆盖率数值的增长。在我来看其本质还是通过单测自测提前发现问题减少bug尽量的去避免将来可能出现的生产事故。 参考资料 Jacoco官网https://www.jacoco.org/
- 上一篇: 健身房网站的建设情况网站后台用什么浏览器
- 下一篇: 健身网站模板五种网络广告形式
相关文章
-
健身房网站的建设情况网站后台用什么浏览器
健身房网站的建设情况网站后台用什么浏览器
- 技术栈
- 2026年04月20日
-
健康养生网站源码html5医院网站
健康养生网站源码html5医院网站
- 技术栈
- 2026年04月20日
-
健康养生网站模板给浏览器加速的加速器
健康养生网站模板给浏览器加速的加速器
- 技术栈
- 2026年04月20日
-
健身网站模板五种网络广告形式
健身网站模板五种网络广告形式
- 技术栈
- 2026年04月20日
-
江北网站建设价格郑州免费建站
江北网站建设价格郑州免费建站
- 技术栈
- 2026年04月20日
-
江东网站制作网站策划预算怎么做
江东网站制作网站策划预算怎么做
- 技术栈
- 2026年04月20日
