1

我最近在 Rails 应用程序中添加了带有 React-Redux 和 Babelify(用于 ES6)的 ReactJS。黄瓜测试在本地通过,但在 CircleCI 上没有通过。到目前为止,这是我所知道的:

  • 当我检查工件中的屏幕截图时,React 组件似乎没有呈现,即使等待它们出现的时间长达 4 秒。
  • CircleCI 构建中没有错误
  • 我试过在没有缓存的情况下在 CircleCI 上重建。
  • 基本的依赖于 javascript 的测试正在通过。
  • 依赖 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
4

1 回答 1

2

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

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

于 2015-10-07T21:01:15.860 回答