Node.jsユニットテスト[終了]


164

現在、優れたnode.js(サーバー側js)ユニットテストフレームワークはありますか?Assertモジュールが提供するよりも少し深いものを探しています。

回答:


66

私はnode-unitを使用することになり、本当に満足しています。

私はもともとExpressoを使用していましたが、テストを並行して実行するという事実がいくつかの問題を引き起こしました。(たとえば、データベースフィクスチャの使用は、この状況ではうまく機能しません)。


25
Expressoは、テストを並行して実行することを強制しません。--serial引数を指定すると、すべてが順不同で実行されます。
einaros 2011

3
nodeunitをダウンロードして使用したところ...
マイケル・ドースマン

1
Nodeunitは少し奇妙で、すべてのテストで.done()imho を呼び出す必要があります。
Kos

2
もし私が今新しいプロジェクトを始めているなら、おそらくテストフレームワークとしてMochaを使用するでしょう
evilcelery

1
Nodeunitは.done()非同期テストに対応する必要があります。時々少し扱いに​​くいかもしれませんが、この方法で実行することには大きな理由があります。
L0j1k 2014年

48

また、nodeの適切なテストフレームワークを探していたところ、Mochaを見つけました 。それはExpressoの公式の後継者であり、非常に成熟しているようです。

さまざまなアサーションライブラリをプラグインすることができ、コードカバレッジやその他のレポーターを提供します(独自にプラグインできます)。同期または非同期で実行でき、簡潔なAPIを備えています。

私はそれを試して報告します...

編集:

信じられないほどの時間を他のプロジェクトに費やした後、私はようやくJavascriptプロジェクトに戻り、モカと遊ぶ時間を持ちました。真剣にお勧めします。テストは非常にうまく読み、gulpとの統合は素晴らしく、テストは非常に高速に実行されます。自動スタンドアロンとブラウザー内(browserify)テスト実行および対応するコードカバレッジレポートを約半日でセットアップできました(ほとんどの時間はgulpからbrowserifyを使用する方法の理解に費やされました)。私にとって、モカはテストフレームワークにとって非常に良い選択のようです。

更新:

私はまだモカについて非常に確信しています。chaiとの統合により、さまざまなアサーションスタイルをプラグインできます。このgithubプロジェクトの作業設定をチェックアウトできます。コードカバレッジレポート、自動ウォッチャー、IntelliJとの適切な統合を統合して、今それをkarmaで使用しています


githubプロジェクトのリンクが壊れています。更新していただけますか?
karlisup 2016年


15

私は個人的にアサートモジュールのみを使用しましたが、自分ももっと欲しがっています。私は多くのノードモジュールを調べてきましたが、人気のあるユニットテストフレームワークはノードユニットであり、それを実行する必要があります(これはExpressoと同じ人が作成したものです(おそらく更新された名前ですか?))

誓約も有望に見えます。


15
私はそのしゃれのためにあなたを賛成します。
ThomasReggi 2013

15

個人的にはExpressoを使い続けましたが、さまざまなフレームワークがたくさんあり、ほとんどのテストスタイルに対応しています。

Joyentには広範なリストがあります。それをやってみます。


1
Expressoは私にとって意味のある唯一のものであり、非同期コードを適切に処理します。誓約とqunitも試した。
balupton 2011

5

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
});

その他の例


6
それに同意し、誓約の構文は恐ろしいIMO
Donn Felker、2012

簡単なラッパーで誓いを立てて遊んだ。json apiをテストするための良いアイデアのように見えましたが、すぐに不足しました。また、このような呼び出しの連鎖に重点を置いたAPIは、使用が難しく、デバッグが難しいこともよくあります。例では見栄えは良いですが、実際の使用方法ではうまく機能しません。
drekka

@drekkaの誓いと誓い-isは恐ろしいです。モカを使用
Raynos

今すぐ試してみましたが、同様の一連の問題が発生しているようです。
drekka

あなたはそれを間違って使用しているに違いありません。gist.github.com/2896455を読んでみてください。@drekka
レイノス



0

もともとnode.js用に作成されたdeadunitは、node.jsとブラウザー用のJavaScript単体テストライブラリです。そのユニークな属性のいくつか:

  • 簡単な学習曲線
  • テスト結果をコマンドライン(カラーまたはプレーンテキスト)またはHTMLとして出力できます
  • アサーションのある実際のコード行を出力するので、テストの解説を書くのに多くの時間を費やさなくても、出力は意味があります
  • count予期される例外と非同期アサートを簡単に処理できるようにする単純なアサーションがあります
  • 例外それらが持っている添付データを出力します
  • コードがハングしているかどうかを通知します(望ましくないものですが、通常は気付かれません)
  • イベント駆動型APIを備えているため、ネットワークを介して、または任意の方法でテスト結果をストリーミングできます。
  • ノードファイバーによるテストをサポート

0

nodejsをkarmaおよびJasmine:narmaで単体テストするために使用しているプロジェクトをアップロードしました。ノードモジュールがnodewebkitブラウザに読み込まれるので、ノードモジュールを実行して、同じヒープ内でjqueryのようなライブラリを使用できます。


0

test-studioは、ユニットテスト用の強力なWebベースのフロントエンドを提供するnpmパッケージです。テストの個別またはグループの実行、ノードインスペクターの個別テストへのステップインなどをサポートします。現在モカをサポートしており、将来の需要に応じてより多くのフレームワークがサポートされる予定です。

詳しくはこちらをご覧ください

免責事項:私は著者です。


1
これはあなたが書いたようですね?もしそうなら、あなたは答えでその事実を開示するべきです。
ストジー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.