我正在 Windows 7 下开发 Rails 3.x 应用程序,并使用 Cucumber 和 Capybara 进行测试。
我已经设置了一个 Ubuntu 虚拟机并将我的应用程序部署到该虚拟机上。
我想在每次部署后使用 Cucumber / Capybara 在 VM 上测试我的应用程序 - 毕竟,这是一个不同的操作系统,我想利用我的测试套件的强大功能来测试不同的浏览器(Firefox、Chrome 和 IE)部署的站点。
从理论上讲,似乎我有 3 个主要选项:
1) 在本地运行 Cucumber,使用本地浏览器并访问远程服务器 (VM guest) 2) 在本地运行 Cucumber,使用远程浏览器访问远程服务器 3) 连接到 VM guest 并在 VM 下本地运行 Cucumber
在我看来,选项 1) 最能模拟现实世界,即不在远程服务器上运行浏览器。
但是,我不确定这是否可能,或者如何配置东西来实现它。特别是我不清楚在这种情况下是否需要 Selenium Server,如果需要,是否应该在本地(在 Windows 开发机器上)或远程(在部署应用程序的来宾 VM 中)部署它。
我已经对这个问题进行了相当多的谷歌搜索,并查看了以下帖子:
https://github.com/leonid-shevtsov/headless
虽然这些提供了一些线索,例如使用(与http://rubydoc.info/github/jnicklas/capybara官方 Capybara 文档中描述的完全一样)
Capybara.app_host = "http://hostname:4444"
Capybara.default_driver = :selenium
Capybara.run_server = false
给出的示例似乎是指远程运行的浏览器(例如我的选项 2 或 3),我仍然不确定最好的方法是什么。