我必須找出好辦法來設置主機/端口的測試上CircleCI導軌上正確CircleCI
EDIT 2個問題 - 要求:
- 的Rails應用上TEST_PORT本地運行(如果ENV變量可用)或默認端口3000
- 我有一個基於會話的測試,從
localhost
如此神奇地切換到127.0.0.1
會導致測試失敗 - 在我CircleCI ENVIRO註釋我將主機www.example.com映射到
127.0.0.1
,我希望Capybara連接到該網站而不是直接本地主機/ 127.0.0.1 - 在我的CircleCI環境中,端口80被保留,所以rails應用程序必須運行不同的端口(如3042)
- 一些集成測試需要連接到遠程站點(對不起沒有VCR還)
www.example-remote.com
端口80
以前我的測試套件運行良好與本地主機:3042,但隨後我意識到我在使用會話的測試中遇到了問題:rails應用程序本身在本地主機上啓動,但隨後將電子郵件發送到127.0.0.1廣告這導致基於會話的測試失敗
禮服我改變了以下配置類似http://www.example.com/:3042/xxx
產生
# feature/env.rb
Capybara.server_port = ENV['TEST_PORT'] || 3042
Rails.application.routes.default_url_options[:port] = Capybara.server_port
if ENV['CIRCLECI']
Capybara.default_host = 'http://www.example.com/'
end
# configuration/test.rb
config.action_mailer.default_url_options = {
host: (ENV['CIRCLECI'].present? ? 'www.example.com' : '127.0.0.1'),
port: ENV['TEST_PORT'] || 3042
}
# circle.yml
machine:
hosts:
www.example.com: 127.0.0.1
但現在我越來越怪異的電子郵件網址是否有人管理上circleCI一個工作配置使用自定義主機名?
EDIT
水豚2.13 滑軌5.0 黃瓜2.4 CircleCI 1.x的
你使用什麼版本的水豚? –