0

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 を含めてみました。(それは暗闇でのショットでした。実際にうまくいくとは思いませんでした。)

これでスイングしたい人は誰でも本当にありがとう。

4

1 に答える 1

2

Jasmine と angular-scenario.js (e2e ランナー) は 2 つの異なるものであり、別々に実行する必要があります。Angular e2e テスト フレームワークは、jasmine に非常によく似た構文を使用します。おそらくジャスミンと一緒に含めると、 、 などのジャスミンのメソッドがオーバーライドさdescribeitますbeforeEach

于 2013-08-21T09:04:04.903 に答える