junit配合catubuter统计单元测试的代码覆盖率
1、视频参考孔浩老师ant视频笔记
对应的build-junit.xml脚步如下所示:
<?xml version="1.0" encoding="UTF-8"?> <project default="coverage-report"> <property name="src.dir" location="src"></property> <property name="test.src.dir" location="test"></property> <property name="web.dir" location="WebRoot"></property> <property name="conf.dir" location="conf"></property> <property name="web.web-info.dir" location="${web.dir}/WEB-INF"></property> <property name="lib.dir" location="${web.web-info.dir}/lib"></property> <property name="build.dir" location="build"></property> <property name="build.classes" location="${build.dir}/classes"></property> <property name="test.dir" location="${build.dir}/test/"></property> <property name="test.classes.dir" location="${test.dir}/classes"></property> <property name="test.report.dir" location="${test.dir}/report"></property> <property name="build.jar.dir" location="${build.dir}/dist"></property> <property name="build.zip.dir" location="${build.dir}/zip"></property> <property name="build.doc.dir" location="${build.dir}/doc"></property> <property name="build.src" location="${build.dir}/src"></property> <property name="instrumented_classes" value="${test.dir}/instrumented-classes" /> <property name="cobertura_report" value="${test.dir}/cobertura-report" /> <path id="complie-path"> <fileset dir="${lib.dir}" includes="**/*.jar"></fileset> </path> <path id="complie-test-path"> <path refid="complie-path"></path> <pathelement location="${build.classes}"/> </path> <path id="run-test-path"> <path refid="complie-test-path"></path> <pathelement location="${test.classes.dir}"/> </path> <path id="cobertura-run-path"> <path refid="complie-path"></path> <pathelement location="${test.classes.dir}"/> <pathelement location="${instrumented_classes}"/> </path> <target name="clean"> <delete dir="${build.dir}"></delete> </target> <target name="init" depends="clean" > <mkdir dir="${build.dir}"/> <mkdir dir="${build.classes}"/> <mkdir dir="${test.dir}"/> <mkdir dir="${test.classes.dir}"/> <mkdir dir="${test.report.dir}"/> <mkdir dir="${build.jar.dir}"/> <mkdir dir="${build.zip.dir}"/> <mkdir dir="${build.doc.dir}"/> <mkdir dir="${build.src}"/> <mkdir dir="${instrumented_classes}"/> <mkdir dir="${cobertura_report}"/> </target> <target name="compile" depends="init"> <javac destdir="${build.classes}" srcdir="${src.dir}" includeantruntime="true" classpathref="complie-path"> </javac> <copy todir="${build.classes}" > <fileset dir="${src.dir}" excludes="**/*.java"></fileset> </copy> </target> <target name="compile-test" depends="compile"> <javac destdir="${test.classes.dir}" srcdir="${test.src.dir}" includeantruntime="true" classpathref="complie-test-path"> </javac> <copy todir="${test.classes.dir}" > <fileset dir="${test.src.dir}" excludes="**/*.java"></fileset> </copy> </target> <target name="run-test" depends="compile-test"> <junit printsummary="true" haltonfailure="no" showoutput="true" failureproperty="junit.fail"> <classpath refid="run-test-path"> </classpath> <formatter type="xml" usefile="true"/> <batchtest fork="yes" todir="${test.report.dir}"> <fileset dir="${test.classes.dir}"> <include name="**/Test*.class"/> </fileset> </batchtest> </junit> <junitreport todir="${test.report.dir}"> <fileset dir="${test.report.dir}"> <include name="TEST-*.xml"/> </fileset> <report format="frames" todir="${test.report.dir}/html"/> </junitreport> <fail if="${junit.fail}" message="单元测试运行失败,请查看:${test.report.dir}/html"/> </target> <!-- 定义 cobertura 的ant task --> <taskdef classpath="cobertura.jar" resource="tasks.properties" classpathref="complie-path" /> <!-- 为源码添加日志代码,放到 instrumented-classes 目录 --> <target name="instrument" depends="run-test"> <cobertura-instrument todir="${instrumented_classes}"> <fileset dir="${build.classes}"> <include name="**/*.class" /> </fileset> </cobertura-instrument> </target> <!-- 执行单元测试 --> <target name="cover-test" depends="instrument"> <junit printsummary="yes" fork="yes" haltonfailure="no" > <classpath refid="cobertura-run-path"></classpath> <formatter type="xml" usefile="true"/> <batchtest fork="yes" todir="${test.report.dir}"> <fileset dir="${test.classes.dir}"> <include name="**/Test*.class"/> </fileset> </batchtest> </junit> </target> <!-- 输出报告 --> <target name="coverage-report" depends="cover-test"> <cobertura-report srcdir="${src.dir}" destdir="${cobertura_report}"/> </target> </project>
posted on 2018-06-25 10:05 luzhouxiaoshuai 阅读(365) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2017-06-25 c++教程网经典的c语音学习视频教程