ant接口自动化 junit_ant 学习(3)--结合junit形成自动化测试小框架
ant 結(jié)合junit 進(jìn)行軟件自動(dòng)測(cè)試
1> 用ant 結(jié)合junit 啟動(dòng)基本編譯和測(cè)試的自動(dòng)過(guò)程如下:
執(zhí)行 JUnit 測(cè)試
捕獲測(cè)試結(jié)果,將結(jié)果記錄到 XML 文件或其它格式的文件
將結(jié)果轉(zhuǎn)化為基于 XSL 格式的測(cè)試報(bào)告
將這個(gè)報(bào)告轉(zhuǎn)化為 HTML 格式
用電子郵件發(fā)送報(bào)告 -----這個(gè)好像沒(méi)有實(shí)現(xiàn)哦,后面再學(xué)習(xí)補(bǔ)充
一旦捕獲結(jié)果,就可以使用 XML 格式化器將每個(gè)測(cè)試套件運(yùn)行的故障和錯(cuò)誤數(shù),連
同軟件包和類名還有測(cè)試套件的執(zhí)行時(shí)間一起引入。對(duì)于每個(gè)測(cè)試套件,都有以下信息被
捕獲:
測(cè)試案例的名稱
執(zhí)行的持續(xù)時(shí)間
故障或錯(cuò)誤的類型(如果適用)
任何故障或錯(cuò)誤的詳細(xì)信息
2> 本次實(shí)例的目錄結(jié)構(gòu):
C:\car 主目錄
\src 源程序目錄
\classes 編譯后的class 文件目錄
\etc 其他
\xsl XSL 文件目錄
首先在 C盤創(chuàng)建car 目錄、src 子目錄和etc 子目錄,并從%ANT_HOME%\etc 下拷貝junit-noframes.xsl 文件至C:\car\etc\xsl 子目錄下。
3> 從http://download.sourceforge.net/junit/junit3.8.zip下載,解壓至C盤,將其目錄下的junit.jar 文件拷貝至%ANT_HOME%\lib 目錄下。
(說(shuō)明:這里不一定要是3.8的版本,我想應(yīng)該高于這個(gè)版本的junit的jar包就行)
4> 在src 子目錄下新建Car.java 以及testCar.java 文件。
Car.java
public class Car
{
public int getWheels()
{
return 3;
}
}
testCar.java
import junit.framework.*;
public class testCar extends TestCase
{
protected int expectedWheels;
protected Car myCar;
public testCar(String name)
{
super(name);
}
protected void setUp()
{
expectedWheels = 3;
myCar = new Car();
}
public static Test suite()
{
return new TestSuite(testCar.class);
}
public void testGetWheels()
{
assertEquals(expectedWheels, myCar.getWheels());
}
}
5> 在C:/car目錄下創(chuàng)建build.xml 和build.properties 文件。
build.xml
build.properties
src.dir=src
build.dir=classes
xsl.dir=etc/xsl
report.dir=report
6》運(yùn)行ant junit
打開(kāi)junit-noframes.html 測(cè)試報(bào)告? (顯然報(bào)告顯示期望結(jié)果是4,而得到的結(jié)果是3,所以測(cè)試失敗。可以修改Car.java 的結(jié)果,改3為4,則可以測(cè)試成功)
這里生成junit-noframes.html 是因?yàn)槲覀冊(cè)趈unitreport中這么設(shè)置的?
即無(wú)框架顯示
如果我們改為?讓其有框架顯示,則要求先從%ANT_HOME%\etc 下拷貝junit-frames.xsl 文件至C:\car\etc\xsl 子目錄下。即換一個(gè)有框架的模板
然后運(yùn)行ant junit,其測(cè)試報(bào)告就變?yōu)榱?/p>
----------------------------
進(jìn)一步學(xué)習(xí),解釋以上的內(nèi)容
在build.xml 中運(yùn)行了junit,junitreport。 這個(gè)兩個(gè)都是ant的task,在ant官方網(wǎng)站上有解釋但不是很明白,以下是在網(wǎng)絡(luò)中查到的解釋,我估計(jì)如果利用junitreport 具有以上知識(shí)就夠用了吧:),其實(shí)以下算是對(duì)上面junit ,junitreport的解釋吧
一、Junit任務(wù)基本概念:
junit是ant的基本任務(wù)之一。這個(gè)任務(wù)運(yùn)行一個(gè)或多個(gè)JUNIT測(cè)試,并收集以一種或多種格式顯示結(jié)果。下面是幾個(gè)junit任務(wù)的屬性
1、haltonfailure,printsummary分別表示如果測(cè)試失敗是否中止,是否打印基本信息。
2、fommatter--收集結(jié)果數(shù)據(jù),一個(gè)或多個(gè)formatter可以直接在junit,test,或者batchtest下面嵌套使用。有以下三種formatter:
brief:以文本格式提供測(cè)試失敗的詳細(xì)內(nèi)容。
plain:以文本格式提供測(cè)試失敗的詳細(xì)內(nèi)容以及每個(gè)測(cè)試的運(yùn)行統(tǒng)計(jì)
xml:以xml格式提供擴(kuò)展的詳細(xì)內(nèi)容,包括正在測(cè)試時(shí)ant的特性,系統(tǒng)輸出,以及每個(gè)測(cè)試用例的系統(tǒng)錯(cuò)誤。
將會(huì)在data目錄下為所有的測(cè)試用例都創(chuàng)建一個(gè)xml文件。
3、test
運(yùn)行單獨(dú)的測(cè)試用例
4、batchtest,同時(shí)運(yùn)行多個(gè)測(cè)試用例
測(cè)試的輸出結(jié)果將放到todir。而dir中所有的測(cè)試用例都將運(yùn)行。
xml formatter的默認(rèn)命名規(guī)范為Test-*.xml.
5、syspropertyset,運(yùn)行junit test的時(shí)候,可以指定syspropertyset,這樣在Test*.java文件中可以通過(guò)System.getProperty();來(lái)獲取在構(gòu)建文件中定義的property的值。例子:
...
6、sysproperty,也可以在junit中定義sysproperty,所定義的property的用法和上面的syspropertyset中的property的用法是一樣的。
7、fork="true",讓junit運(yùn)行在獨(dú)立的jvm中。
二、junitreport任務(wù)
可以采用junitreport任務(wù)生成html的報(bào)告。junitreport任務(wù)首先將生成的xml文件整合成一個(gè)xml文件,一般命名為TESTS-TestSuites.xml.然后再對(duì)xml文件進(jìn)行轉(zhuǎn)換。其格式如下:
在上面這個(gè)例子里,junitreport任務(wù)將整合test.data.dir下面的Test-*.xml文件,并且生成html文件框架.
report表示生成有框架或無(wú)框架的javadoc。
三、如何只運(yùn)行單個(gè)測(cè)試。
對(duì)test和batchtest使用if/unless來(lái)實(shí)現(xiàn)選擇性的運(yùn)行單個(gè)測(cè)試或者運(yùn)行整個(gè)測(cè)試。
if表示只要testcase 這個(gè)property存在則會(huì)執(zhí)行test,unless表示將會(huì)執(zhí)行batchset,除非testcase這個(gè)property存在。因此如果想要運(yùn)行單個(gè)測(cè)試,只需要在命令行中-Dtestcase=...即可。否則將會(huì)運(yùn)行所有的testcases。
本文轉(zhuǎn)自 326647452 51CTO博客,原文鏈接:http://blog.51cto.com/svsky/2074009,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的ant接口自动化 junit_ant 学习(3)--结合junit形成自动化测试小框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在部队里打枪的简称是什么名字
- 下一篇: 61云队课提到了哪艘航空母舰?