我正在为一个有邮件列表的程序编写自动化测试服。我正在尝试确定构建我将要使用的工具的最佳实践。测试需要将电子邮件发送到各种电子邮件地址,然后使用该应用程序执行操作(批准,拒绝,丢弃)。然后,脚本最终需要检查其邮件并将收到的电子邮件与其预期收到的电子邮件列表进行比较。这是我正在使用的工具列表。
红宝石, 耙, Selenium Webdriver, 测试单元, 詹金斯
我想要做的是将所有内容视为最后一步的依赖(在rake中)(检查电子邮件)。试图让每封电子邮件都独一无二时,我遇到了问题我计划将测试运行的时间和分配给测试中每封电子邮件的编号嵌入到电子邮件中(对于每次测试运行,这个数字都是相同的,这样我就可以确定应该去哪里)。我需要一种方法来将时间戳从测试开始传递到测试结束。
我看到我的问题的解决方案是摆脱rake(因为我不知道或不知道如何在任务之间传递变量)或写入文件然后在单独的任务中访问文件。
有什么建议吗?
答案 0 :(得分:1)
我建议在运行每个测试之前在Rakefile中设置一个ENV变量,如下所示:
ENV['TIMESTAMP_CONTROL'] = Time.now.to_s
然后,您可以在脚本和Rakefile中的任何位置引用该变量,直到您再次像其他任何Ruby变量一样重置它:
assert_equal ENV['TIMESTAMP_CONTROL'], @email_response_text