2

我有,我们已经创建了一套Selenium测试,使用的RSpec和水豚,针对某远程服务器运行项目之前清理远程数据库。这意味着这些测试不会像应用程序一样运行在Rails实例/环境中,因此无法访问该应用程序的rake任务。想法如何运行Selenium测试

我们正在试图找出是清洁的/一个很好的方法,每次运行前恢复数据库。我们通过Jenkins构建任务部署应用程序,然后如果成功,则启动硒测试。我们使用Selenium2,测试通过SeleniumServer(以前的Selenium Grid)运行。当我们部署应用程序以恢复数据库时,我们确实有能力解除Cap任务。

的问题是怎么做,同时最小化,我们需要做的(最好是限制迁移到只有最近期的)和预播种与所需数据的数据库迁移的数量的恢复。

一些有趣的事情要注意我们的设置:我们有一些信息要播种,而不是播放它,但比你想要进入种子文件更多,我们有一个完全分区的数据库与两个公共和私人模式。我们有一个多租户应用程序,并使用私有模式来隔离数据访问。

那么,什么是一些其他人都用来解决这个问题的方法?

我想大多数人使用数据库清洁对于这个问题,但正如我在开始时说,硒的测试运行Rails环境之外,以便数据库吸尘器将无法正常工作。

+0

如果这是一个测试服务器,那么你就可以打开黄瓜环境数据库的远程连接并做你喜欢的任何事情,例如使用数据库清理器清理数据库或者只执行计划SQL查询。 – luacassus 2012-04-02 21:57:01

回答

0

如果您使用詹金斯,你可以建立另一个詹金斯作业是重置/刷新你的数据库负责。这可能包含用于清理数据库的脚本。然后将您当前的Jenkins测试工作设置为顺利执行清理工作后启动的下游项目。

然后,当你想开球完整测试,只要运行清理作业,去做成三明治:)

相关问题