1

私は、Javascript と RequireJS で単体テストを実行しようとしています。私はWebアプリを構築していますが、明らかに、本番ビルドではなく開発でテストを実行したいだけです。

質問:

  1. 必要なときにテストするだけですか、それとも開発中にページが読み込まれるたびに JS テストを実行していますか?
  2. テストがオンデマンドのみの場合、どのようにテストをトリガーして実行しますか? クエリ文字列 (例: ?testing=true) またはそのようなもの?

人々が開発中のテストをどのように行っているかについてのアイデアが必要です。フロントエンドで BackboneJS、RequireJS、および jQuery を使用し、バックエンドで NodeJS/ExpressJS サーバーを使用しています。

4

3 に答える 3

1

作業中のBackboneプロジェクトでは、jsTestDriverを介して自動化されたjavascriptテストを実行するMavenビルドプロセスがあり、Sonarを使用して結果を読み取ります。私は通常、手動で('mvn test'を使用して)テストを実行しますが、たとえば、ファイルを保存するたびにmavenに簡単に伝えることができます。QUnit、Requirejs、およびコードカバレッジをMavenから独立したJSTDと統合する方法を示す投稿を書きました:js-test-driver + qunit + coverage+requirejs。また、jsTestDriverサイトのものよりもはるかに最新で開発されたQUnitAdapterへのリンクも含まれています。jsTestDriverをMavenとSonarで動作させる方法について書くことができたら、この投稿を更新します。それが役に立てば幸い。

于 2012-06-30T01:03:24.793 に答える
1

Grunt は人気のある JS ビルド ツールです。特定のファイルの変更を監視し、それに応じてタスクを実行できる grunt-watch と呼ばれるものがあります。保存するたびに、このようなものを使用して単体テストを簡単に実行できます。

通常、エンド ツー エンドのテストには時間がかかるため、そのために CI を使用します。私は Meteor TDD に関するプレゼンテーションで、保存のたびにエンドツーエンドのテストを行っているのを見たことがあります。

多くのエンド ツー エンドのテスト フレームワークがあり、grunt のようなビルド ツールを使用して、ファントム js のようなヘッドレス ブラウザーで実行できます。一部のフレームワークは実際のブラウザーを開いてテストを実行しますが、コマンド ライン経由で実行し、XML を使用して結果をレポートします。

コンポーネントを十分に分割すれば、テストのスコープを十分に小さくして、保存ごとに実行できます。

于 2013-09-20T16:15:15.760 に答える
0

一部のコア コードでは、ビルド サーバーで JsUnit + Rhino を使用します。より複雑なビット (通常はインターフェイス) には、selenium を使用します (ビルド サーバーでも実行されます)。ページの読み込みについては何もテストしていません。圧縮されていないバージョンのスクリプトのみを使用しています。統合テストの解決策はありません。

于 2011-11-21T10:32:44.860 に答える