使用automake工具,進(jìn)行自動(dòng)化測(cè)試
作者:net_robber
日期:2008年07月04日
原帖發(fā)表于 ChinaUnix.net
前言:
在對(duì)軟件進(jìn)行測(cè)試過(guò)程中,經(jīng)常會(huì)遇到對(duì)大量測(cè)試樣本進(jìn)行測(cè)試。
測(cè)試樣本通常會(huì)歸類(lèi)后,放在不同的子目錄中。有多種方式可以遍歷目錄、文件進(jìn)行測(cè)試。
但是,如果采用Make工具進(jìn)行測(cè)試,除了可以遍歷目錄,還可以檢查樣本和輸出結(jié)果之間的依賴(lài)關(guān)系,
并根據(jù)時(shí)間戳,自動(dòng)判斷是否重新測(cè)試。
如果測(cè)試中斷,還能自動(dòng)掠過(guò)已經(jīng)使用過(guò)的樣本
示例以及詳細(xì)說(shuō)明:
假設(shè)現(xiàn)在有如下樣本環(huán)境
.
|-- DIR1
|? ?|-- file_1.in
|? ?|-- file_2.in
|? ?|-- file_3.in
|? ?`-- file_4.in
`-- DIR2
? ? |-- file_a.in
? ? |-- file_b.in
? ? |-- file_c.in
? ? `-- file_d.in
測(cè)試要求:對(duì)每一個(gè)樣本進(jìn)行某一操作,輸出結(jié)果為同名out文件,如: file_1.in??---> file_1.out
為了方便演示, 這里使用touch操作
操作過(guò)程:
1、首先在樣本根目錄創(chuàng)建 configure.ac文件如下:
AC_PREREQ(2.59)
AC_INIT(Make-tester, 1..0, [email]net_robber@TimeCtrl.net[/email])
AM_INIT_AUTOMAKE
AC_CHECK_FILE(??[/bin/touch],
? ?? ?? ?? ?? ? [echo "Have command touch"],
? ?? ?? ?? ?? ? [AC_MSG_ERROR(["can NOT find command touch"])])
AC_CONFIG_FILES([Makefile
? ?? ?? ?? ?? ? DIR1/Makefile
? ?? ?? ?? ?? ? DIR2/Makefile])
AC_OUTPUT
2、在樣本根目錄創(chuàng)建 Makefile.am文件
3、在DIR1 和DIR2目錄下,分別創(chuàng)建 Makefile.am文件
in = file_1.in file_2.in file_3.in file_4.in
out =$(patsubst %.in,%.out,$(in) )
all : $(out)
%.out : %.in
? ?? ???touch $@
clean:
? ?? ???rm -fr *.out
in = file_a.in file_b.in file_c.in file_d.in
out =$(patsubst %.in,%.out,$(in) )
all : $(out)
%.out : %.in
? ?? ???touch $@
clean:
? ?? ???rm -fr *.out
4、執(zhí)行
touch AUTHORS ChangeLog NEWS README
aclocal
automake -a -f
autoconf -f
5、執(zhí)行
進(jìn)行測(cè)試
6、執(zhí)行
清空測(cè)試結(jié)果
總結(jié):
混多工具,如果換一種角度去考慮它的使用,也許會(huì)帶來(lái)一些額外的幫助