回答:
私はnode-unitを使用することになり、本当に満足しています。
私はもともとExpressoを使用していましたが、テストを並行して実行するという事実がいくつかの問題を引き起こしました。(たとえば、データベースフィクスチャの使用は、この状況ではうまく機能しません)。
.done()
imho を呼び出す必要があります。
.done()
非同期テストに対応する必要があります。時々少し扱いにくいかもしれませんが、この方法で実行することには大きな理由があります。
また、nodeの適切なテストフレームワークを探していたところ、Mochaを見つけました 。それはExpressoの公式の後継者であり、非常に成熟しているようです。
さまざまなアサーションライブラリをプラグインすることができ、コードカバレッジやその他のレポーターを提供します(独自にプラグインできます)。同期または非同期で実行でき、簡潔なAPIを備えています。
私はそれを試して報告します...
信じられないほどの時間を他のプロジェクトに費やした後、私はようやくJavascriptプロジェクトに戻り、モカと遊ぶ時間を持ちました。真剣にお勧めします。テストは非常にうまく読み、gulpとの統合は素晴らしく、テストは非常に高速に実行されます。自動スタンドアロンとブラウザー内(browserify)テスト実行および対応するコードカバレッジレポートを約半日でセットアップできました(ほとんどの時間はgulpからbrowserifyを使用する方法の理解に費やされました)。私にとって、モカはテストフレームワークにとって非常に良い選択のようです。
私はまだモカについて非常に確信しています。chaiとの統合により、さまざまなアサーションスタイルをプラグインできます。このgithubプロジェクトの作業設定をチェックアウトできます。コードカバレッジレポート、自動ウォッチャー、IntelliJとの適切な統合を統合して、今それをkarmaで使用しています
個人的にはExpressoを使い続けましたが、さまざまなフレームワークがたくさんあり、ほとんどのテストスタイルに対応しています。
Joyentには広範なリストがあります。それをやってみます。
vowsはnode.js用の強力な単体テストライブラリですが、構文は面倒です。
APIを連鎖可能にするvows-fluentと呼ばれる薄い抽象化を作成しました。
また、別の抽象化[vows-is]を作成しました。これは、vows-fluentに基づいて構築され、BDDスタイルの構文を公開します。
例は
var is = require("vows-is");
is.suite("testing is fun").batch()
.context("is testing fun?")
.topic.is("yes")
.vow.it.should.equal("yes")
.suite().run({
reporter: is.reporter
});
利用可能なさまざまなテストフレームワークの中で、mochaは最新で、実装が非常に簡単だと思います。これを使用する方法についての素晴らしいチュートリアルがあります:http : //thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/
QUnitに精通している場合は、QUnitの既存のフレームワークのノードラッパーの一種であるnode-qunitを使用できます。
もともとnode.js用に作成されたdeadunitは、node.jsとブラウザー用のJavaScript単体テストライブラリです。そのユニークな属性のいくつか:
count
予期される例外と非同期アサートを簡単に処理できるようにする単純なアサーションがありますnodejsをkarmaおよびJasmine:narmaで単体テストするために使用しているプロジェクトをアップロードしました。ノードモジュールがnodewebkitブラウザに読み込まれるので、ノードモジュールを実行して、同じヒープ内でjqueryのようなライブラリを使用できます。
test-studioは、ユニットテスト用の強力なWebベースのフロントエンドを提供するnpmパッケージです。テストの個別またはグループの実行、ノードインスペクターの個別テストへのステップインなどをサポートします。現在モカをサポートしており、将来の需要に応じてより多くのフレームワークがサポートされる予定です。
詳しくはこちらをご覧ください。
免責事項:私は著者です。