运行rails服务器会更改测试结果吗?

时间:2016-01-11 13:49:10

标签: ruby-on-rails rspec reactjs phantomjs capybara

与这个问题相关,我遇到了一个奇怪的情况。 ruby on rails - Log in test fails with RSpec / Capybara / Poltergeist - Stack Overflow


只需运行测试

bin/rspec spec/features/spec.rb

11871 spring server | myapp | started 32 secs ago
11877 spring app    | myapp | started 31 secs ago | test mode

我从PhantomJS获取日志,如:

API.ajax:GET /user :failed
httpStatus:0
error
undefined


使用在开发中运行的服务器运行测试

bin/rails s 然后 bin/rspec spec/features/spec.rb

我从PhantomJS获取日志,如:

API.ajax:POST /sessions :failed
httpStatus:401
error
[object Object]


如果没有服务器在开发中运行,看起来PhantomJS甚至无法访问/ sessions网址。 (无论如何它都失败了。)

有没有人有相同的经历?我不知道为什么运行dev服务器会进行此更改,并希望有解决测试失败的线索。

我正在使用RSpec,Cabybara,Poltergeist,PhantomJS 2.0和 React

谢谢!

1 个答案:

答案 0 :(得分:1)

开发服务器在端口3000上运行,而Capybara在随机端口上运行测试服务器,除非您设置了Capybara.server_port。根据您的描述,听起来您可能会引用硬编码到您的JS中的端口3000,这意味着即使在测试模式下运行也不会尝试联系开发服务器

相关问题