問題タブ [ember-qunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ember.js - Ember のアップグレードは 1 つのテストを中断し、Safari でのみ
ハイゼンバグを捕まえようとしています。
プロジェクトを Ember CLI 0.2.0 および Ember 1.10.0 から Ember CLI 0.2.3 および Ember 1.11.1 に更新しています。これは非常に簡単なプロセスでしたが、Safari (7.1.5) でのみ失敗するテストが 1 つだけあります。PhantomJS、Chrome、および Firefox で渡されます。
厄介なことに、テストが失敗するのは、Testem によってテスト実行が開始されたとき (つまり、コードの変更によって自動更新テスト実行がトリガーされたとき) だけです。Qunit Web インターフェイス内からテストを開始すると、合格します。これらは両方とも、テストのグループ化に関係なく当てはまります。テスト中の機能は、ブラウザで手動で実行すると問題なく動作します。
これは統合テストであり、入力で値が変更されると、サーバーから返された値で入力が更新されることを確認します。テストでは、「サーバー」は Pretender インスタンスです。テスト自体は次のようになります。
andThen()
2 番目のブロックに注意してくださいfocusout
。コントロールに送信することで、バッキング コンポーネントのコードに、データを更新してサーバーに戻すように促す必要があります。他のブラウザはこれを行います - 私はconsole.log()
それを確認するために Pretender レスポンダに入れました - しかし Safari はしません。focusout
イベントに適切に対応していないと思います。
このテストが、Ember CLI の更新のみが異なるブランチで合格したことを考えると、この問題を解決するために何が変更された可能性がありますか?
ETA: この更新で更新されたすべてのライブラリを個別にロールバックしましたが、テストは引き続き失敗します。機能しているように見える唯一の変更は、Ember 自体をロールバックすることです。1.11.1 と同じように 1.11.0 で壊れるので、変更は 1.10.0 と 1.11.0 の間です。(それは私にふるいにかけるために最大600のコミットを残すだけです...)
ETA2: 範囲を 1.11.0-beta.5 と 1.11.0 の間に狭めました。バウアー リンクを使用して ember のローカル ビルドを使用しようとしていますが、テストの実行においてこれまでのところ ember ビルドは信頼できず、これら 2 つのタグの関係は効果的な bisecting につながるものではありません。
ember-cli - Ember-cli で Qunit のグローバル タイムアウトを設定する
QUnitのグローバルタイムアウトを設定するためにember-cliが文書化されている場所を見つけることができません。
QUnit のドキュメントを見つけました: https://api.qunitjs.com/QUnit.config/
testTimeout (デフォルト: 未定義) タイプ: 数値 適切なメッセージですべてのテストが失敗するまでのグローバル タイムアウトをミリ秒単位で指定します。テストランナーが動かなくなるのを防ぐために、非同期テストが終了していない場合に役立ちます。30000 (30 秒) などの高い値に設定して、遅いテストが誤ってタイムアウトするのを防ぎます。
\node_modules\ember-cli-qunit\vendor\ember-cli-qunit\qunit-configuration.js 内でこれを変更できましたが、これは期待どおりに機能します。
ただし、node_modules をソース管理にチェックインしていないため、ここでこの値を変更しても、実際には何の役にも立ちません。
ここでは、ember-cli でグローバル テスト タイムアウトを取得するために変更を加える必要がある場所について途方に暮れています。
ember.js - qunit を使用した Ember 単体テストでサービスとしてのストアに依存するにはどうすればよいですか?
バージョンのブログ投稿によると、ストアをサービスとして使用できるようになりました。ember-data
1.0.0-beta.16
qunit
ただし、そのようなコンポーネントで単体テストを行う方法がわかりません。私は次のことを試しました:
と:
前者を実行するとエラーが発生Attempting to register an unknown factory: 'service:store'
し、後者を実行するとエラーが発生しstore
ますundefined
。
考え?
(私はember-cli
スタイルアプリを書いています)。
アップデート:
ember-test-helpers リポジトリには、これに関する未解決の問題があるようです。
この修正を待っている間、応急処置として機能するヘルパー (coffeescript) を作成しました。
ember.js - Ember.js動的ルートはテストでは解決されませんが、本番環境では機能します
example.com/quaunaut
そこで、Twitter スタイルの URL 構文を使用して、ユーザーが「quaunaut」というユーザー名を持つユーザーのユーザー ページにアクセスできるようにしようとしています。私はこれを達成することができました:
app/router.js
アプリ/ルート/ユーザー/show.js
現在、ライブまたは 経由で実行するとember s
、これは素晴らしく機能します。ただし、テストでは、何らかの理由で解決しないようです。
次のテスト結果が得られます。
それで、currentPath()
解決しない理由はありますか?私がここでやろうとしていることを実装するためのより良い手段についての推奨事項もあれば、私は確かにそれを受け入れます.
ember.js - Ember 統合テストに 1 回合格すると、次のテストに失敗します: 分解ブロックが悪い?
A と B の 2 つの Ember 統合テストがあります。 8.) A が B の前に実行されると、B は失敗します。B が単独で実行された場合、または A の前に実行された場合は、パスします。
この説明から、A がテスト環境に対して、B を台無しにするようなことをしていることは明らかです。しかし、ログ メッセージに関連するテストと製品コードを自由にソルト化した後では、何が起きているのかを理解するにはほど遠い状態です。明らかな問題がある場合は、他の誰かが見つけてくれることを願っています。
現在afterEach
、両方のテストでブロックを詳しく調べています。beforeEach
テスト A のandafterEach
ブロックの概要は次のとおりです。
これafterEach
はほとんど標準の ember-cli コードですが、少し戸惑います。のドキュメントでEmber.run()
は、引数として関数を取得する必要があることが示唆されていますが、ここでは関数を指定していないため、それがどのように機能するかはわかりません。また、Pretendershutdown()
呼び出しは Ember.run 内 (またはそれ自体の Ember.run 内) にある必要がありますか?
記録のためのバージョン: ember-cli 0.2.0、Ember 1.10.1。
ETA: ember-cli 0.2.3 と Ember 1.11.3 に更新すると、この問題はなくなります。今、私がその更新で持っている他の失敗したテストを理解できれば...
javascript - Ember CLI で生成された単体テストが存在する場合に失敗する
controllers/order.js に注文コントローラーがあります
これには /tests/unit/controllers/order-test.js にテストがあります
router.js は次のようになります
誰かがテーブル内の注文をクリックすると、テーブルの下に注文の詳細が表示され、ルートがたとえば /orders/1 になる /orders/ ルートがあるという考えです。
単体テストは次のように失敗します。
ここで単体テストに合格するには、セットアップまたはテストで何を変更する必要がありますか?
ember.js - this.subject() は、テストの開始時にすでに破棄されたオブジェクトを返します
私のemberモデルにはいくつかのqunitテストがあります。
モデルを保存しようとすると、発生します
Assertion Failed: calling set on destroyed object
そして、これを実行するthis.subject().get('isDestroyed')
とtrueが返されます。
ここで何が起こっているのですか?
ember.js - Ember Testing: Why use Assert.?
I see a lot of examples (including ember-cli generated tests) that use assert.function()
but I can use the function as is, so am I doing something wrong, or do examples just show not-really-necessary qualifiers?
For example, either of these work in a new generated unit test:
assert.expect(1);
expect(1);
Why ever do the first one if the second one works?