我正在寻找一个测试框架来为a language without much test support引入自动化测试。据我所知,我需要一个能够使用某种形式的协议运行VDF测试的框架。我宁愿花时间编写测试而不是编写VDF代码来与测试框架接口,因此更喜欢轻量级协议。
Slim with Fitnesse似乎是一个不错的候选人,但我对所有推荐感兴趣。
能够在编程语言中使用相同的测试框架将是一个额外的好处。
答案 0 :(得分:4)
这假设您正在使用API级别。如果我读错了,并且你在GUI级工作,那么你更容易考虑像selenium或watir这样的东西。
您是否考虑过编写自己的简单测试框架来输出TAP结果(测试任何协议) - 然后用grind或TAP2HTML解析它?
说真的,TAP输出如下所示:
1..7 ok 1 - hello world with null value returns 'hello world' string ok 2 - hello world with bob returns 'hello, bob' ok 3 - hello world with 123 return 'hello, 123' ok 4 - hello world with 5K string return hello plus string ok 5 - special characters ok 6 - internationalization, fr ok 7 - internationalization, ja Looks like you failed 0 tests of 7.
(如果它在第5步之后死亡,1..7会告诉你一些错误的信息)
输出为直ASCII。你基本上有两个全局变量,numTestsTotal和numTestExecuted,并写这样的函数:
sub ok (boolean bExpected, string comment) { if (bExpected) { print "ok " . numTestsExecuted . " " . comment . "\n"; }else { print "not ok" . numTeststotal . " " . comment . "\n"; } numTestsExecuted++; } sub eq(int iExpected, int iResult, string comment) { if (iExpected==iResult) { print "ok " . numTestsExecuted . " " . comment . "\n"; } else { print "not ok" . numTestsExecuted . " " . comment . \n"; } numTestsExecuted++; }
您在库中编写常规代码,然后您的测试应用程序包含库和测试模块。
您可以为每种类型的值重载eq,而write则用于比较数组等。
请参阅TAP文档: http://testanything.org/wiki/index.php/Main_Page
是的,你可以说eq()应该“只”调用ok()。或者您可以在输出中插入预期和实际结果。由你决定。
无论如何,对于更多命令式语言,有许多TAP解析器和解释器。