-08 IBM Andrew Glover
用 JUnit 进行测试
幸运的是,用 Ant 运行 JUnit 测试非常容易:Ant 允许通过 junit 任务运 行 JUnit 测试。在配置 junit 任务时,需要考虑寻找 JUnit 测试的位置以及如 何获取这些测试的结果。
清单 4. 通过 Ant 运行 JUnit 测试
<target name="test" depends="compile-tests" description="runs JUnit tests">
<mkdir dir="${test.report.dir}" />
<junit dir="${basedir}" printSummary="on" fork="true" haltonfailure="true">
<sysproperty key="basedir" value="${basedir}" />
<formatter type="xml" />
<classpath>
<path refid="build.classpath" />
<pathelement path="${test.classes.dir}" />
<pathelement path="${classes.dir}" />
</classpath>
<batchtest todir="${test.report.dir}">
<fileset dir="${test.source.dir}">
<include name="${test.pattern}" />
</fileset>
</batchtest>
</junit>
</target>
在清单 4 中,junit 任务运行在 test.source.dir(在 清单 1 中定义)目 录中找到的所有测试。XML 报告写到另一个目录(test.report.dir)中。在开始 配置 CI 服务器时,要使用这些测试报告写到的位置。
软件检查
有了 Ant 这样的自动化机制,就可以以多种方法监视软件质量。有许多种扫 描源代码和二进制文件的工具,但是其中最流行的两种是 PMD 和 FindBugs。PMD 扫描源代码文件,并根据一系列规则检查其中的代码。如果代码有问题,它就会 报告一个违规。FindBugs 的作用与 PMD 相似,但是它扫描二进制文件(即类文 件)并报告 bug。这两个工具都能够很好地与 Hudson 集成。
运行 PMD
通过 Ant 运行 PMD 很容易:只需 下载它并按照说明操作!与运行 JUnit 测 试一样,一定要指定在运行 PMD 时生成 XML 报告。
清单 5. 用 PMD 寻找代码违规
<target name="pmd" depends="init">
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
classpathref="build.classpath" />
<pmd>
<ruleset>rulesets/basic.xml</ruleset>
<ruleset>rulesets/braces.xml</ruleset>
<ruleset>rulesets/javabeans.xml</ruleset>
<ruleset>rulesets/unusedcode.xml</ruleset>
<ruleset>rulesets/strings.xml</ruleset>
<ruleset>rulesets/design.xml</ruleset>
<ruleset>rulesets/coupling.xml</ruleset>
<ruleset>rulesets/codesize.xml</ruleset>
<ruleset>rulesets/imports.xml</ruleset>
<ruleset>rulesets/naming.xml</ruleset>
<formatter type="xml" toFile="${default.target.dir}/pmd_report.xml" />
<fileset dir="${source.dir}">
<include name="**/*.java" />
</fileset>
</pmd>
</target>
PMD 有许多规则,可以对自己的代码库运行这些规则。清单 5 给出许多选项 ,但是选择运行哪些规则完全取决于您。
通过持续集成尽早发现缺陷(6)
时间:2011-07-08 IBM Andrew Glover
运行 FindBugs
Fin |