383

私はMochaを使用してJavaScriptをテストしています。私のテストファイルには5つのテストが含まれています。ファイル内のすべてのテストではなく、特定のテスト(または一連のテスト)を実行することは可能ですか?

4

13 に答える 13

451

モカの--grepオプションを使用してみてください:

    -g, --grep <pattern>            only run tests matching <pattern>

として有効な JavaScript 正規表現を使用できます<pattern>。たとえば、次の場合test/mytest.js:

it('logs a', function(done) {
  console.log('a');
  done();
});

it('logs b', function(done) {
  console.log('b');
  done();
});

それで:

$ mocha -g 'logs a'

単一のテストを実行します。これは、すべての名前describe(name, fn)it(name, fn)呼び出しをgrepすることに注意してください。

describe()特定のセットを簡単に見つけて選択できるようにするために、名前空間にネストされた呼び出しを使用することを検討してください。

于 2012-05-31T12:29:32.733 に答える
203

使用パターンによっては、のみを使用したい場合があります。TDD スタイルを使用します。次のようになります。

test.only('Date part of valid Partition Key', function (done) {
    //...
}

このテストのみがすべてのファイル/スイートから実行されます。

于 2012-08-31T19:21:30.387 に答える
115

npm test(package.jsonスクリプトを使用して)使用している場合は、エクストラを使用してパラメーター--をmochaに渡します

例えばnpm test -- --grep "my second test"

編集:少しうるさいように見え--grepます(おそらく他の引数に依存します)。あなたはできる:

package.json を変更します。

"test:mocha": "mocha --grep \"<DealsList />\" .",

または、代わり--bailに、あまりうるさくないと思われるものを使用します

npm test -- --bail
于 2016-08-18T07:37:02.833 に答える
23

これを行う方法は複数あります。

  • テスト ケースのリスト全体から 1 つのテストを実行するだけの場合は、テスト ケースの前にのみ記述できます。

    it.only('<test scenario name>', function() {
      // ...
    });
    

    または、以下のように mocha grep コマンドを実行することもできます

    mocha -g <test-scenario-name>
    
  • 1 つの記述セクション内にあるすべてのテスト ケースを実行する場合は、記述のみを記述することもできます。

    describe.only('<Description of the tests under this section>', function() {
      // ...
    });
    
  • 複数のテスト ファイルがあり、そのうちの 1 つだけを実行したい場合は、次のコマンドを実行できます。

    npm test <filepath>
    

    例:

    npm test test/api/controllers/test.js
    

    ここで「test/api/controllers/test.js」はファイルパスです。

于 2017-08-09T12:57:51.003 に答える
10

こんにちは、上記の解決策はうまくいきませんでした。単一のテストを実行する別の方法は、

mocha test/cartcheckout/checkout.js -g 'Test Name Goes here'

これは、単一のファイルから特定の名前でテスト ケースを実行するのに役立ちます。

于 2016-11-30T05:29:18.420 に答える
2

npm テストを使用しているときに grep メソッドが機能しない理由がわかりません。しかし、これは機能します。また、何らかの理由でテスト フォルダーも指定する必要があります。

npm test -- test/sometest.js
于 2016-11-04T16:34:57.950 に答える