React / Babel:组件不仅仅在CircleCI上呈现

时间:2015-10-07 18:49:45

标签: ruby-on-rails reactjs babeljs circleci redux

我最近将ReactJS与React-Redux和Babelify(针对ES6)添加到Rails应用程序中。黄瓜测试在当地通过,但他们没有传递给CircleCI。这是我目前所知道的:

  • 当我检查工件中的屏幕截图时,看起来React组件没有渲染,即使在等待最多4秒钟时它们也会出现。
  • CircleCI构建中没有错误
  • 我尝试在没有缓存的情况下重建CircleCI。
  • 基本的javascript-reliant测试正在通过。
  • 依赖babel并导入库(lodash)的基本测试正在通过

如何让我的黄瓜测试React组件传递给CircleCI?

# no circle.yml

# gemfile
gem 'capybara-webkit'
gem "chromedriver-helper"
gem 'capybara-screenshot'
gem 'selenium-webdriver'

# package.json
"dependencies": {
  "browserify": "~> 10.2.4",
  "browserify-incremental": "^3.0.1",
  "lodash": "^3.10.1",
  "react": "~>0.13.3",
  "react-redux": "~>3.1.0",
  "redux-thunk": "~>1.0.0",
  "babelify": "~>6.3.0"
}

# support/env.rb
Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, browser: :chrome)
end
Capybara.javascript_driver = :chrome

1 个答案:

答案 0 :(得分:2)

在进入CircleCI测试的SSH之后,我的同事发现Object.assign未定义。显然,CircleCI使用的是旧版本的Chrome,而不是我们的测试版本,而且Babel不会自动填充该ES6方法(请参阅评论以获取更多信息)。

他用lodash的Object.assign()取代了_.extend(),测试到处都是绿色。