Posted on 2009-01-27 22:24
S.l.e!ep.¢% 閱讀(316)
評論(0) 編輯 收藏 引用 所屬分類:
test
使用automake工具,進行自動化測試
作者:net_robber
日期:2008年07月04日
原帖發表于 ChinaUnix.net
前言:
在對軟件進行測試過程中,經常會遇到對大量測試樣本進行測試。
測試樣本通常會歸類后,放在不同的子目錄中。有多種方式可以遍歷目錄、文件進行測試。
但是,如果采用Make工具進行測試,除了可以遍歷目錄,還可以檢查樣本和輸出結果之間的依賴關系,
并根據時間戳,自動判斷是否重新測試。
如果測試中斷,還能自動掠過已經使用過的樣本
示例以及詳細說明:
假設現在有如下樣本環境
.
|-- 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
測試要求:對每一個樣本進行某一操作,輸出結果為同名out文件,如: file_1.in??---> file_1.out
為了方便演示, 這里使用touch操作
操作過程:
1、首先在樣本根目錄創建 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、在樣本根目錄創建 Makefile.am文件
3、在DIR1 和DIR2目錄下,分別創建 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、執行
touch AUTHORS ChangeLog NEWS README
aclocal
automake -a -f
autoconf -f
5、執行
進行測試
6、執行
清空測試結果
總結:
混多工具,如果換一種角度去考慮它的使用,也許會帶來一些額外的幫助