使用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、执行
清空测试结果
总结:
混多工具,如果换一种角度去考虑它的使用,也许会带来一些额外的帮助
[ 本帖最后由 net_robber 于 2008-7-4 12:15 编辑 ] |