7. 組裝TestSuite,運(yùn)行更多的test。在junit中,Test、TestCase和TestSuite三者組成了composiste pattern。通過(guò)組裝自己的TestSuite,可以完成對(duì)添加到這個(gè)TestSuite中的所有的TestCase的調(diào)用。而且這些定義的TestSuite還可以組裝成更大的TestSuite,這樣同時(shí)也方便了對(duì)于不斷增加的TestCase的管理和維護(hù)。
它的另一個(gè)好處是,可以從這個(gè)TestCase樹(shù)的任意一個(gè)節(jié)點(diǎn)(TestSuite或TestCase)開(kāi)始調(diào)用,來(lái)完成這個(gè)節(jié)點(diǎn)以下的所有TestCase的調(diào)用。提高了unit test的靈活性。
8. 使用例子:
import junit.framework.Test;
import junit.framework.TestSuite;
public class TestAll{
public class TestAll{
//定義一個(gè)suite,對(duì)于junit的作用可以視為類(lèi)似于java應(yīng)用程序的main。
public static Test suite(){
TestSuite suite = new TestSuite("Running all tests.");
suite.addTestSuite( TestCase1.class);
suite.addTestSuite( TestCase2.class);
return suite;
}
}
運(yùn)行同運(yùn)行單獨(dú)的一個(gè)TestCase是一樣的,參見(jiàn)step 1 “運(yùn)行”。
9. 使用Ant junit task。我們除了使用java來(lái)直接運(yùn)行junit之外,我們還可以使用junit提供的junit task與ant結(jié)合來(lái)運(yùn)行。涉及的幾個(gè)主要的ant task如下:
- ,定義一個(gè)junit task
- ,位于中,運(yùn)行多個(gè)TestCase
- ,位于中,運(yùn)行單個(gè)TestCase
- ,位于中,定義一個(gè)測(cè)試結(jié)果輸出格式
- ,定義一個(gè)junitreport task
- ,位于中,輸出一個(gè)junit report
具體的語(yǔ)法請(qǐng)參見(jiàn)相關(guān)文檔。
10. 使用例子:
<junit printsummary="yes" haltonfailure="no">
<classpath>
<path refid="classpath"/>
<pathelement location="${dist.junit}"/>
</classpath>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<batchtest todir="${doc.junitReport}">
<fileset dir="${dist.junit}" includes="**/*Test.class" />
</batchtest>