3

我正在使用菠菜、Capybara 和 Poltergeist 一起编写自动化 UI 测试。我一直在尝试加快本地运行测试的速度。我正在使用 Spring,它对环境加载有一点帮助。但是,Poltergeist 启动的对应用服务器的第一个请求 ( visit) 很慢,因为 Rails 必须在第一次编译资产。我尝试在测试环境中启动本地服务器,然后在我的菠菜env.rb文件中执行此操作:

::Capybara.run_server = false
::Capybara.app_host = "http://localhost:#{ENV['TEST_SERVER_PORT']}"

这使得调试变得困难,因为 Web 服务器运行在与菠菜进程不同的进程中。此外,预编译资产不是一个好的解决方案,因为我不想每次在调整 JS 文件中的内容然后运行测试以验证我的更改时都运行它。

底线:有没有人想出如何使第一个测试服务器请求更快?

4

2 回答 2

0

您可以对菠菜使用并行测试

https://github.com/grosser/parallel_tests

它可能不会解决第一个请求的问题,但它可以加快运行所有测试 - 这仍然可能对您有益

于 2015-04-07T12:49:10.393 回答
0

首先,我会设置rspec-retry. 其次,试试这个spec/rails_helper.rb

RSpec.configure do |config|
  config.before(:all) { visit '/' if defined?(visit) }
end
于 2016-02-23T19:48:36.560 回答