Rails バックエンドと AngularJS フロントエンドで構成される (現在の) 非常に単純なサイト用の Jasmine テストがいくつかあります。Jasmine のエンド ツー エンド テストを実行しようとしていますが、angular-scenario.js を含めるとテストが実行されません。それは彼らを失敗させません。それはそれらをまったく開始しません。
私はバージョン 1.0.7 を使用しており、すべての Angular ファイルは同じバージョンのものです (すべて公式の Angular サイトのものです。私が使用している Rails のバージョンは 3.1.3 と Ruby 1.9.3 です。私もjasmine gem バージョン 1.3.2 と jasmine-rails 0.4.5 を使用します。
仕様/javascripts/support/jasmine.yml:
src_files:
- assets/application.{js,coffee}
stylesheets:
- stylesheets/**/*.css
helpers:
- helpers/**/*.{js,coffee}
- lib/angular-scenario.js
spec_files:
- '**/*[sS]pec.{js,coffee}'
src_dir: 'app/assets/javascripts'
spec_dir: spec/javascripts
spec/javascripts/spec_helper.coffee:
#= require angular.min
#= require angular-mocks
仕様/javascripts/templates/brands/index_spec.coffee:
describe 'test', () ->
it 'works', () ->
expect(true).toEqual(true)
もちろん、angular-scenario.js を配置してテストが正しく機能するまで、これは単なるプレースホルダーです。
angular-scenario.js がなければ、テストが実行されます。それで、何もありません。
テストするには、通常 RAILS_ENV=test rake spec:javascript を実行しますが、Web サーバー インターフェイスからも試しました。
angular-secnario.js を含まない出力:
Starting...
Finished
-----------------
1 spec, 0 failures in 0.005s.
ConsoleReporter finished
angular-scenario.js を使用した出力:
Starting...
Finished
-----------------
0 specs, 0 failures in 0s.
ConsoleReporter finished
私が試したこと:
- angular-scenario.js を vendor/assets/javacripts に移動し、spec_helper.coffee から要求します。
- spec_helper.coffee から他の Angular 関連の要件を削除します。
- angular-scenario.js には、パッケージ化された jQuery が付属しています。奇妙なことに、jQuery ビットをコメント アウトすると、テストが実行されますが、angular-scenario には明らかに jQuery が必要なため、テストは失敗します。また、angular-scenario で jQuery をコメントアウトし、jquery-rails gem から jQuery を含めてみました。(それは暗闇でのショットでした。実際にうまくいくとは思いませんでした。)
これでスイングしたい人は誰でも本当にありがとう。