Ant可以進行自動化建構,而JUnit可以進行自動化測試,Ant可以與JUnit結合,使得自動化的建構與測試變得可行。
這邊使用 第一個 JUnit 測試 中的測試案例,來示範如何將Ant結合JUnit以進行自動化建構與測試,之前的測試案例是:
package onlyfun.caterpillar.test;
import onlyfun.caterpillar.MathTool; import junit.framework.TestCase;
public class MathToolTest extends TestCase { public void testGcd() { assertEquals(5, MathTool.gcd(10, 5)); } public static void main(String[] args) { junit.textui.TestRunner.run(MathToolTest.class); } }
而要測試的對象是:
package onlyfun.caterpillar; public class MathTool { public static int gcd(int num1, int num2) { int r = 0; while(num2 != 0) { r = num1 % num2; num1 = num2; num2 = r; } return num1; } }
Ant使用<junit>任務來設定JUnit測試,下面直接示範一個簡單的例子:
<project name="autobuildtest" default="test"> <target name="setProperties"> <property name="src.dir" value="src"/> <property name="classes.dir" value="classes"/> </target>
<target name="prepareDir" depends="setProperties"> <delete dir="${classes.dir}"/> <mkdir dir="${classes.dir}"/> </target>
<target name="compile" depends="prepareDir"> <javac srcdir="./src" destdir="${classes.dir}"/> </target>
<target name="test" depends="compile"> <junit printsummary="yes"> <test name="onlyfun.caterpillar.test.MathToolTest"/> <classpath> <pathelement location="${classes.dir}"/> </classpath> </junit> </target> </project>
printsummary屬性會將測試的結果簡單的顯示出來,<test>的name屬性是設定要進行測試的案例類別,Ant建構與調用 JUnit進行測試的訊息如下:
p>ant
Buildfile: build.xml
setProperties:
prepareDir:
[mkdir] Created dir: D:\temp\classes
compile:
[javac] Compiling 2 source files to D:\temp\classes
test:
[junit] Running onlyfun.caterpillar.test.MathToolTest
[junit] Tests run: 1, Failures: 0, Errors: 0,
Time elapsed: 0 sec
BUILD SUCCESSFUL
Total time: 6 seconds
|
|