7. 組裝TestSuite,運行更多的test。在junit中,Test、TestCase和TestSuite三者組成了composiste pattern。通過組裝自己的TestSuite,可以完成對添加到這個TestSuite中的所有的TestCase的調(diào)用。而且這些定義的TestSuite還可以組裝成更大的TestSuite,這樣同時也方便了對于不斷增加的TestCase的管理和維護。
它的另一個好處是,可以從這個TestCase樹的任意一個節(jié)點(TestSuite或TestCase)開始調(diào)用,來完成這個節(jié)點以下的所有TestCase的調(diào)用。提高了unit test的靈活性。
8. 使用例子:
import junit.framework.Test;
import junit.framework.TestSuite;
public class TestAll{
public class TestAll{
//定義一個suite,對于junit的作用可以視為類似于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;
}
}
運行同運行單獨的一個TestCase是一樣的,參見step 1 “運行”。
9. 使用Ant junit task。我們除了使用java來直接運行junit之外,我們還可以使用junit提供的junit task與ant結(jié)合來運行。涉及的幾個主要的ant task如下:
- ,定義一個junit task
- ,位于中,運行多個TestCase
- ,位于中,運行單個TestCase
- ,位于中,定義一個測試結(jié)果輸出格式
- ,定義一個junitreport task
- ,位于中,輸出一個junit report
具體的語法請參見相關(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>