1

最近、React-Redux と Babelify (ES6 用) を使用した ReactJS を Rails アプリケーションに追加しました。きゅうりのテストはローカルでは成功していますが、CircleCI では成功していません。これが私がこれまでに知っていることです:

  • アーティファクトのスクリーンショットを確認すると、React コンポーネントが表示されるまで最大 4 秒待っていても、React コンポーネントがレンダリングされていないようです。
  • 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

CircleCI テストに SSH 接続した後、同僚はそれObject.assignが未定義であることを確認しました。どうやら CircleCI は、私たちがテストしたよりも古いバージョンの Chrome を使用しており、Babel はその ES6 メソッドを自動的にポリフィルしません (詳細についてはコメントを参照してください)。

Object.assign()は lodashに置き換えられ_.extend()、テストはどこでも緑色です。

于 2015-10-07T21:01:15.860 に答える