ruby-on-rails - 在 CI 上使用 Cypress 启动 Rails 测试服务器

标签 ruby-on-rails rspec cypress

如果我使用RAILS_ENV=test Rails server启动rails服务器,然后运行cypress run,我可以在本地运行cypress,但我不知道如何执行此操作关于 CI。

我正在使用 SemaphoreCI,它允许我在运行 rspec 之前设置命令:

$ bundle install
$ npm install
$ bundle exec rake db:create db:migrate db:test:prepare --trace

其次是实际工作:

$ bundle exec rspec

根据cypress ,我无法使用 cy.exec() 启动 Rails 服务器,并且无法将 rails server 作为我的最后一个设置命令运行,因为它不会退出。我还能如何在 CI 上启动测试服务器以便运行 cypress run

最佳答案

我最终添加了RAILS_ENV=test bundle execrails server -p 3000 -d,以便它在后台运行,然后kill -9 $(cat tmp/pids/server.pid ) 用于作业后命令(一旦 rspec/cypress 完成运行)

关于ruby-on-rails - 在 CI 上使用 Cypress 启动 Rails 测试服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51661617/

相关文章:

jquery - Selenium 测试中 $ 未定义错误

ruby - 使用 Capybara 或 Xpath 查找表中给定列中是否存在内容?

javascript - Cypress .io : How to create a function that helps select different DOM elements based on input

ruby-on-rails - Rspec:使用 js 提交表单时模型未更新

typescript - 如何在不运行测试的情况下编译 Cypress TypeScript

linux - 不运行 Cypress 和 linux cron

ruby-on-rails - Rails 应用程序如何知道在哪里提取 ENV 变量?

ruby-on-rails - Rails 4 Eager Load has_many 单个对象的关联

ruby-on-rails - rake Assets 之间的差异 :precompile and rake assets:clobber

rspec - 如何在不启用旧语法的情况下取消 rspec 3 中的 stub ?