2017-07-19 9 views
0

私は、i18nサービス(テストが挿入する)に依存するコンポーネントの単純な、骨なしの統合テストを行っています。コンポーネント自体はember-select-listからの単純な選択ドロップダウンであり、デフォルト値はSelect Languageです。ここではテストがあります:Emberのコンポーネント統合テストは、単独で実行すると合格になりますが、フルスイートを実行すると失敗します。なぜですか?

import { moduleForComponent, test } from 'ember-qunit'; 
import hbs from 'htmlbars-inline-precompile'; 

moduleForComponent('language-select', 'Integration | Component | language select', { 
    integration: true, 
    beforeEach() { 
    this.inject.service('i18n'); 
    } 
}); 

test('it renders', function(assert) { 
    this.render(hbs`{{language-select}}`); 

    assert.equal(this.$().text().trim().includes('Select Language'), true); 
}); 

私はこの1つのだけのテストファイル(すなわちember test -f "language-select")を実行しようとすると、私は見出力は毛羽立ちのテストが行​​われたことを示しています

[ hospitalrun-frontend ] $ ember test -f "language-select" 
WARNING: Node v7.5.0 is not tested against Ember CLI on your platform. We recommend that you use the most-recent "Active LTS" version of Node.js. 
cleaning up... 
Built project successfully. Stored in "/Users/richie.thomas/Desktop/Workspace/OpenSource/hospitalrun-frontend/tmp/core_object-tests_dist-5MT1adu7.tmp". 
ok 1 PhantomJS 2.1 - ESLint - acceptance/language-select-test.js: should pass ESLint 
ok 2 PhantomJS 2.1 - ESLint - components/language-select.js: should pass ESLint 
ok 3 PhantomJS 2.1 - TemplateLint - hospitalrun/templates/components/language-select.hbs: should pass TemplateLint 
ok 4 PhantomJS 2.1 - ESLint - integration/components/language-select-test.js: should pass ESLint 

1..4 
# tests 4 
# pass 4 
# skip 0 
# fail 0 

# ok 

しかし、私が実行したとき平野ember test、私は明らかに間違って国際化サービスを注入していますので、このテストが失敗したことを参照してください。

not ok 488 PhantomJS 2.1 - Integration | Component | language select: it renders 
--- 
    actual: > 
     null 
    expected: > 
     null 
    stack: > 
     http://localhost:7357/assets/hospitalrun.js:4090:18 
     [email protected]://localhost:7357/assets/vendor.js:35757:32 
     [email protected]://localhost:7357/assets/vendor.js:40664:22 
     [email protected]://localhost:7357/assets/vendor.js:33758:29 
     [email protected]://localhost:7357/assets/vendor.js:33625:52 
     [email protected]://localhost:7357/assets/vendor.js:65639:37 
     [email protected]://localhost:7357/assets/vendor.js:33512:34 
     [email protected]://localhost:7357/assets/vendor.js:31495:53 
     [email protected]://localhost:7357/assets/vendor.js:66320:43 
     [email protected]://localhost:7357/assets/vendor.js:72898:36 
     [email protected]://localhost:7357/assets/vendor.js:72472:30 
     [email protected]://localhost:7357/assets/vendor.js:30793:52 
     [email protected]://localhost:7357/assets/vendor.js:41756:28 
     [email protected]://localhost:7357/assets/vendor.js:31058:64 
     [email protected]://localhost:7357/assets/vendor.js:31096:26 
     [email protected]://localhost:7357/assets/vendor.js:31017:35 
     [email protected]://localhost:7357/assets/vendor.js:30930:23 
     [email protected]://localhost:7357/assets/vendor.js:30913:29 
     [email protected]://localhost:7357/assets/vendor.js:19795:19 
     [email protected]://localhost:7357/assets/vendor.js:19865:15 
     [email protected]://localhost:7357/assets/vendor.js:19989:20 
     [email protected]://localhost:7357/assets/vendor.js:20059:28 
     [email protected]://localhost:7357/assets/vendor.js:20182:19 
     [email protected]://localhost:7357/assets/vendor.js:40972:32 
     [email protected]://localhost:7357/assets/test-support.js:20665:30 
     http://localhost:7357/assets/tests.js:15398:16 
     [email protected]://localhost:7357/assets/test-support.js:3859:34 
     [email protected]://localhost:7357/assets/test-support.js:3845:13 
     http://localhost:7357/assets/test-support.js:4037:15 
     [email protected]://localhost:7357/assets/test-support.js:3522:26 
     [email protected]://localhost:7357/assets/test-support.js:5213:27 
     http://localhost:7357/assets/test-support.js:4407:11 
    message: > 
     Died on test #1 http://localhost:7357/assets/tests.js:15392:24 
     [email protected]://localhost:7357/assets/vendor.js:123:37 
     [email protected]://localhost:7357/assets/vendor.js:38:25 
     [email protected]://localhost:7357/assets/test-support.js:19547:14 
     [email protected]://localhost:7357/assets/test-support.js:19539:21 
     [email protected]://localhost:7357/assets/test-support.js:19569:33 
     http://localhost:7357/assets/test-support.js:7584:22: undefined is not an object (evaluating 'i18n.get') 
    Log: | 
... 

私はに何も表示されません。は、実行されているテストのタイプに影響を与えるフィルタフラグに関するものです。リントと非リントのテスト)。

私は適切に国際化サービスを注入する方法についての個別のご質問を投稿して幸せだけど、ここで私の質問は次のとおりです。

はなぜフィルタリングのみテストが実行さにfilterフラグ結果を追加していますか?

答えて

2

ファイル名ではなくモジュール名をフィルタリングします。フィルター文字列の中にダッシュがあります。それを削除して、代わりにスペースを使用してください。

ember test -f "language select" 
+0

OK、これは期待どおりのテストを実行しました。ありがとう!しかし、 'language-select'が' moduleForSelect'メソッド呼び出しの最初のパラメータであるため、モジュール名が 'language-select'に設定されているわけではありませんか?それが本当であれば、私はハイフンが問題ではないと期待します。 –

+0

いいえ、2番目の引数はnameです。 –

関連する問題