我正在寻找一个测试框架来为没有太多测试支持的语言引入自动化测试。据我所知,我需要一个能够使用某种形式的协议运行 VDF 测试的框架。我更愿意花时间编写测试而不是编写 VDF 代码来与测试框架交互,因此更喜欢轻量级协议。
Slim with Fitnesse似乎是一个不错的候选人,但我对所有建议都很感兴趣。
能够跨编程语言使用相同的测试框架将是一个额外的好处。
我正在寻找一个测试框架来为没有太多测试支持的语言引入自动化测试。据我所知,我需要一个能够使用某种形式的协议运行 VDF 测试的框架。我更愿意花时间编写测试而不是编写 VDF 代码来与测试框架交互,因此更喜欢轻量级协议。
Slim with Fitnesse似乎是一个不错的候选人,但我对所有建议都很感兴趣。
能够跨编程语言使用相同的测试框架将是一个额外的好处。
这假设您在 API 级别工作。如果我读错了,并且您在 GUI 级别工作,那么您更倾向于考虑 selenium 或 watir 之类的东西。
您是否考虑过编写自己的简单测试框架来输出 TAP 结果(测试任何协议) - 然后使用grind 或 TAP2HTML 对其进行解析?
说真的,TAP 输出如下所示:
1..7 ok 1 - 带有 null 值的 hello world 返回“hello world”字符串 ok 2 - hello world with bob 返回 'hello, bob' ok 3 - hello world with 123 return 'hello, 123' ok 4 - 带有 5K 字符串的 hello world 返回 hello 加字符串 好的 5 - 特殊字符 好的 6 - 国际化,法国 好的 7 - 国际化,ja 看起来你没有通过 0 次 7 次测试。
(如果它在第 5 步之后死了,1..7 会告诉你有问题)
输出是直接的 ASCII。您基本上将拥有两个全局变量,numTestsTotal 和 numTestExecuted,并编写如下函数:
sub ok (boolean bExpected, 字符串注释) { 如果(b预期){ 打印“好”。numTestsExecuted 。“”。评论 。"\n"; }别的 { 打印“不好”。测试总数。“”。评论 。"\n"; } numTestsExecuted++; } sub eq(int iExpected,int iResult,字符串注释){ 如果(iExpected==iResult){ 打印“好”。numTestsExecuted 。“”。评论 。"\n"; } 别的 { 打印“不好”。numTestsExecuted 。“”。评论 。\n"; } numTestsExecuted++; }
您在库中编写常规代码,然后您的测试应用程序包含库和测试模块。
您可以为每种类型的值重载 eq ,而 write 是比较数组等。
请参阅有关 TAP 的文档:http: //testanything.org/wiki/index.php/Main_Page
是的,你可以争辩说 eq() 应该“只是”调用 ok()。或者您可以在输出中插入预期和实际结果。由你决定。
无论如何,有很多 TAP 解析器和解释器可用于更多命令式语言。