2013-02-07 61 views
1

我正在为有邮件列表的程序编写自动化测试套件。我正在尝试确定构建我将要使用的工具的最佳实践。测试需要发送电子邮件到各种电子邮件地址,然后使用应用程序执行操作(批准,拒绝,放弃)。然后脚本最后需要检查它的邮件,并将它收到的电子邮件与它期望收到的电子邮件列表进行比较。这是我正在使用的工具列表。Ruby测试脚本结构建议

红宝石, 耙, 硒的webdriver, 测试单元, 詹金斯

我想要做的是治疗的最后一步(检查电子邮件)的一切作为依赖(抽佣)。我试图让每封电子邮件都是独一无二的。我计划将测试运行的时间和测试中分配给每个电子邮件的数字嵌入到电子邮件中(每次运行测试时此数字都相同,以便我可以确定它应该到哪里)。我需要一种方法将时间戳从测试开始传递到测试结束。

我看到我的问题的解决方案是摆脱耙子(因为我不能或不知道如何在任务之间传递变量)或写入文件,然后在单独的任务中访问文件。

有什么建议吗?

回答

1

我会建议设定每个测试之前,你的Rakefile的ENV变量运行,像这样:

ENV['TIMESTAMP_CONTROL'] = Time.now.to_s 

然后,您可以在任何地方引用该变量在脚本和Rake文件,直到你重新复位它像任何其他红宝石变量:

assert_equal ENV['TIMESTAMP_CONTROL'], @email_response_text