S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

使用automake工具,进行自动化测试 [转]

Posted on 2009-01-27 22:24 S.l.e!ep.¢% 阅读(310) 评论(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文件

SUBDIRS= DIR1 DIR2

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、执行

./configure
make

进行测试

6、执行


清空测试结果




总结:
混多工具,如果换一种角度去考虑它的使用,也许会带来一些额外的帮助

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理