21

Meteor によって実行されずにテストを実行できる場所はありますか?

最初の Meteor プロジェクトを開始したばかりで、Mochashould.jsを使用して単体テストを作成することから始めました。mocha は問題なく実行されますが、 (完全なエラー メッセージrequire) の 代わりにノードの使用に問題があるため、テストでは Meteor の起動が妨げられます。__meteor_bootstrap__.require

そうは言っても、Meteor は私のテストを実行するべきではありません! Meteor のドキュメントによると、コードはクライアント、サーバー、またはその両方にのみ配置できます。単体テスト スイートはこれらのカテゴリに属しません。自動テストを配置するための明確な場所が Meteor にないことに混乱しているのは私だけではありません。

現在、私のテストは に保持されておりserver/test/、各ファイルの内容はブロックにラップされています。

if (typeof(Meteor) === 'undefined') { ... }

これは機能しますが、エレガントには感じません。Meteor アプリでテストを構成するための他の提案はありますか?

更新: Meteor ドキュメントの明示的な指示の代わりに、テスト アセットを格納するために呼び出されるフォルダーを使用して、 Rails フォルダーの規則(4 番目の段落)に従いました。クライアントにロードしたくないので、test後でこれをに移動しました。server/test

4

4 に答える 4

18

テストをtests/フォルダーに配置します。testこの目的のために名前が付けられたフォルダーを使用する Rails とは異なり、Meteor はtestsこのフォルダー名に複数形を使用します。

「tests」という名前のフォルダーに保存されたアセットは、Meteor によって完全に無視されます。これらのアセットは、クライアントまたはサーバーにロードされません。

皮肉なことに、Meteor クライアントにテストをロードしてもらいたいという逆の問題を抱えている人からヒントを得ました。

于 2012-08-05T19:36:24.090 に答える
2

0.6.0 の興味深いアプローチは、アプリにローカル スマート パッケージのみを使用することです。これは、Meteor の tinytest を使用して簡単にテストできます。アプリをブートストラップするために、スマート パッケージの外部に最小限のコードを配置します。

編集: 私はこのアプローチを行っており、スマート パッケージの外部にある最低限のコードは必要ありません。アプリ全体がパッケージです。

于 2013-05-07T11:58:14.273 に答える
1

これは2012年からの質問であり、ここには包括的な答えが1つもないため、ここで試してみたいと思います.

これは、Meteor プロジェクトのテストについて考え始めるための良い出発点です。

一言で言えば Step1: meteor add sanjo:jasmine Step2: meteor add velocity:html-reporter

これを行った瞬間、アプリケーションが実行されている場合 (またはアプリケーションの実行を再開するたびに)、ブラウザの右上隅 (アプリケーションを開いた場所) に点が点滅し始めます。それでおしまい。これで、テスト フレームワークが用意されました。

このフレームワークの助けを借りて、実際にディレクトリ構造を作成することもできます。その点滅している点をクリックすると、次のようなポップアップが表示されます。

速度テストのステータス

これには、テスト ディレクトリ構造を生成するための便利なリンクがあります。

または、以下のように手動で行うこともできます。次に、ディレクトリ構造を決定します。Meteor Documentation はそれについて十分に述べています。プロジェクトのルートに tests フォルダーが必要です

ここからヒントを得て、このように行くことができます。

<projectRoot>
|---jasmine
      |---client
             |--- integration
                      |---- my.first.integration.spec.js
      |---client
             |--- unit
                      |---- my.first.unit.spec.js
|---jasmine
      |---server
             |--- integration
                      |---- my.first.integration.spec.js
      |---server
             |--- unit
                      |---- my.first.unit.spec.js

そしてヴィオラ、あなたのジャスミンテストを書き始めてください。これらの投稿はさらに役立ちます。

于 2016-01-07T13:24:24.380 に答える
1

テストファイルをtestsフォルダーに配置すれば、問題ありません。serverまたはフォルダに複数のファイルがネストされているようなアプリケーションの場合、またはディレクトリclient内で同様のフォルダ構造を複製できます。ルールではありませんが、メンテナンスに役立つと思います。また、テスト フォルダー内のファイル構造を整理するだけで解決された、欠落しているクラス エラーのデバッグに何時間も費やした経験があります。tests/clienttests/server

于 2015-11-01T19:05:57.910 に答える