1

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

Ruby、Rake、Selenium Webdriver、测试单元、Jenkins

我想做的是将所有内容都视为最后一步(检查电子邮件)的依赖项(在 rake 中)。当我试图让每封电子邮件都独一无二时,我的问题就来了。我计划将运行测试的时间和分配给测试中每封电子邮件的编号嵌入到电子邮件中(此编号对于每次测试运行都是相同的,因此我可以确定它应该去哪里)。我需要一种方法来传递从测试开始到测试结束的时间戳。

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

有什么建议吗?

4

1 回答 1

1

我建议在运行每个测试之前在 Rakefile 中设置一个 ENV 变量,如下所示:

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

然后,您可以在脚本和 Rakefile 中的任何位置引用该变量,直到您像任何其他 Ruby 变量一样再次重置它:

assert_equal ENV['TIMESTAMP_CONTROL'], @email_response_text
于 2013-02-12T14:31:26.363 回答