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