fitnesse python版本安装测试

一直旧闻fitnesse和robotframework大名,但偷懒,并且有现成的自动化测试平台使用,故一直没去研究。

 

前几天从图书馆(图书馆就是好,不收钱)借了本<集成测试框架--用fit进行敏捷软件测试>(中文翻译有问题,原文中哪有敏捷两个字),简单看了一下,发现及其好用,思想非常好。

 

最基本上用三种表格将大部分的测试用例包括了:

  • ColumnFixture: 测试计算。我认为还可以对接口进行枚举测试,比如说边界值、中间值,等等
  • ActionFixture: 测试业务过程。也就是可进行流程测试等
  • RowFixture:测试数据列表。测试系统中的列表、序列或集合是否和预期吻合

从www.fitnesse.org网站上下载了fitnesse(没有下载fit)(靠,这几天网络不知为什么,最新版本下不了,最后下了一个次新版本)。

 

安装非常easy,但接下来就遇到麻烦了。写的case不能连接到写的java代码,不管"!path"如何指定。折磨了两天,决定换个方向,用python版本(找到一种解决方法,请见下面)。

 

下载了python版本(时间比较老,好像是2005年的,基本上没有更新,其他语言的fit版本也是,只有fitnesse一直在更新),一安装运行。靠,有出错了,说找不到"fitfilter.py"文件,到网上一查,说将setup.py中“fitfilter.py”的语句屏蔽即可。靠,作者也太不负责了吧,为什么不搞个干净版本。

 

然后按照http://agile.unisonis.com/PyFitTutorial.html 中的步骤一步一步操作,最后运行一切成功。

 

另:中途差点换了robotframework,但好像没有提供web方式,故没有动力去研究。而python版本目前非常适合现状,反而java还不适合。

 

几个小提示

 

1:

针对python,在wiki上写case时,一定要加下面几行

 

  !define COMMAND_PATTERN {python "%m" %p}

  !define TEST_RUNNER {C:/Python25/PyFIT-0.8a2/fit/FitServer.py}
  !path D:/tmp/fit

第一行告诉fitnesse用的是python,第二行告诉fitnesse fitserver的地方,第三行就是case代码了。

 

2:

如果要使用 “BloggerFixtures.DeleteAllEntries”这种方式,一定要在BloggerFixtures目录下放一个空的__init__.py

 

3:

在eclipse用fitnesse,网上有个很好的视频,可以看看

 

http://softeng.polito.it/courses/tutorial/FitnesseInEclipse.html

 

4:

自动化测试有关键的一条就是可以脚本运行,而fitnesse在命令行下执行为:

usage: java fitnesse.runner.TestRunner [options] host port page-name
-v verbose: prints test progress to stdout
-xml <file> Sends xml test results to the file. If file is 'stdout' sends xml to standard out.
-suiteFilter <filter> runs only those tests of a suite which have been marked with the respective filter

举例为:
java -cp fitnesse.jar fitnesse.runner.TestRunner -v localhost 8010 BlogMgmtSuite

BlogMgmtSuite即为测试页面


5:
在wiki中写path时,目录最后的一个"/"不能写,只能写成下面方式:
classpath: D:/cj/project/android/work/Addition
而不能写成(会出错)
classpath: D:/cj/project/android/work/Addition/

6:
java版本如何运行。
因为是用eclipse建立工程的,发现必须将path指向bin目录才可调用,这样岂不是很麻烦,但目前至少可以解决了。
!path D:/cj/project/android/work/Addition/bin

你可能感兴趣的:(java,eclipse,python,测试,filter,Path)