回答:
モカの--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)
呼び出しを横切ることに注意してください。
describe()
特定のセットを簡単に見つけて選択できるようにするには、名前空間にネストされた呼び出しを使用することを検討してください。
mocha some/test.js
)でファイルを指定しても、まったく機能しませんでした。ありがとう!
logs a bcd
を含む実行も回避する方法はありlogs a
ますか?正規表現は、^$
0.10.2に取り組んでいません。
使用パターンによっては、のみを使用することもできます。TDDスタイルを使用します。次のようになります。
test.only('Date part of valid Partition Key', function (done) {
//...
}
このテストのみがすべてのファイル/スイートから実行されます。
it.only
。
eslint-plugin-mocha
no-exclusive-tests
あなたが削除するのを忘れた場合、あなたを捕まえるルールがあります.only
。
npm test
(package.jsonスクリプトを使用して)使用している場合は、エキストラ--
を使用してパラメーターをmochaに渡します
例えば npm test -- --grep "my second test"
編集:(--grep
おそらく他の引数によっては)少しうるさいように見えます。あなたはできる:
package.jsonを変更します。
"test:mocha": "mocha --grep \"<DealsList />\" .",
または--bail
、それほど煩わしくないように見えるものを使用する
npm test -- --bail
--grep
は少しうるさい場合があります-npm スクリプトエントリ内のモカの直後に置いてみてください。それ以外の場合npm test -- --bail
は、最初の失敗したテストの後のベイル処理に役立ちます
--grep
私の日を救う前に余分なダッシュを渡します!どうもありがとう。PS。私はWindows上で実行していますnpm test -- --grep @tag
実際、もしあなたがmocha.optsからglobパターン(例えば)を削除するなら、ファイル名で(単に `` it()-string-grepping``だけでなく)単一のモカテストを実行することもでき./test/**/*.spec.js
ます。
node_modules/.bin/mocha --opts test/mocha.single.opts test/self-test.spec.js
これが私のmocha.single.optsです(前述のglob行がないことだけが異なります)。
--require ./test/common.js
--compilers js:babel-core/register
--reporter list
--recursive
背景: opts-File(で始まる--
)からさまざまなスイッチをオーバーライドできますが、globをオーバーライドすることはできません。そのリンクにもいくつかの説明があります。
ヒント:場合node_modules/.bin/mocha
混乱あなたは、ローカルパッケージモカを使用します。mocha
グローバルにインストールしている場合は、単にと書くこともできます。
そして、あなたが快適さを望むならpackage.json
:それでも:**/*
-ish globをから削除し、mocha.opts
ここに挿入してください、すべてのテストのために、それらを単一のテストのために残してください:
"test": "mocha ./test/**/*.spec.js",
"test-watch": "mocha -R list -w ./test/**/*.spec.js",
"test-single": "mocha $1",
"test-single-watch": "mocha -R list -w $1",
使用法:
> npm run test
それぞれ
> npm run test-single -- test/ES6.self-test.spec.js
(気に--
!)
Warning: Could not find any test files matching pattern: $1
こんにちは上記の解決策は私のために機能しませんでした。単一のテストを実行するもう1つの方法は、
mocha test/cartcheckout/checkout.js -g 'Test Name Goes here'
これは、単一のファイルから特定の名前でテストケースを実行するのに役立ちます。
-g
。ファイル名を指定する必要はありません。十分に選択的な式を記述できない場合は、テストに適切な名前を付けていないことを意味します。
npm test <filepath>
例:
npm test test/api/controllers/test.js
ここで 'test / api / controllers / test.js'はファイルパスです。
「it.only」を試すことができます
it.only('Test one ', () => {
expect(x).to.equal(y);
});
it('Test two ', () => {
expect(x).to.equal(y);
});
これで最初のものだけが実行されます
--forbid-only
CI /ビルドサーバー経由で実行されない場合、危険です。.only
mainブランチに忍び込み、他のテストが実行されなくなるため、他のテストをミュートにする傾向があります。さまざまなテストを実行するためにコードを変更するワークフローを反機能と考えるようになりました。テストランナーは、開発者ではなく、実行するテスト(別名タグ付きテスト)を決定する必要があります。
it.only
リポジトリへのコードをコミットしないでください
--grep
からのみフィルターをかけているような印象を受けました@
。