Mochaを使用してJavaScriptをテストします。テストファイルには5つのテストが含まれています。ファイル内のすべてのテストではなく、特定のテスト(または一連のテスト)を実行することは可能ですか?
mochaの--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()
呼び出しを使用することを検討してください。
使用パターンに応じて、onlyを使用することもできます。 TDDスタイルを使用します。次のようになります。
test.only('Date part of valid Partition Key', function (done) {
//...
}
このテストのみがすべてのファイル/スイートから実行されます。
__package_jsonスクリプトを使用してnpm test
を使用している場合は、余分な--
を使用して、パラメーターをmochaに渡します
例えばnpm test -- --grep "my second test"
EDIT:--grep
は少々面倒に見えるかもしれません(おそらく他の引数に依存します)。あなたはできる:
Package.jsonを変更します。
"test:mocha": "mocha --grep \"<DealsList />\" .",
または、代わりに--bail
を使用してください。
npm test -- --bail
実際、mocha.optsからそれぞれglobパターン(./test/**/*.spec.js
など)を削除する場合、単一のmochaテストby by filename(「it()-string-grepping」だけでなく)を実行することもできます。なしでコピーを作成します:
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
Background: opts-File(--
で始まる)からさまざまなスイッチをオーバーライドできますが、 globをオーバーライドできません 。そのリンクにはいくつかの説明もあります。
Hint:ローカルパッケージmochaを使用する場合、node_modules/.bin/mocha
が混乱する場合。グローバルにインストールされている場合は、mocha
のみを記述することもできます。
そして、package.json
の快適さを望む場合:それでも:**/*
- ishグロブを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
(--
に注意してください!)
こんにちは上記のソリューションは私のために機能しませんでした。単一のテストを実行する他の方法は
mocha test/cartcheckout/checkout.js -g 'Test Name Goes here'
これは、単一のファイルから特定の名前でテストケースを実行するのに役立ちます。
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);
});
これでは、最初のもののみが実行されます
'describe'、 'it'、または 'context'の前に.onlyを使用してください。 「$ npm run test:unit」を使用して実行すると、.onlyのユニットのみが実行されます。
describe.only('get success', function() {
// ...
});
it.only('should return 1', function() {
// ...
});
Npm testを使用するときにgrepメソッドが動作しない理由がわかりません。これでも動作します。また、何らかの理由でテストフォルダーも指定する必要があります。
npm test-test/sometest.js
すべてのテストを1つのtest.jsファイルに統合し、パッケージjsonは次のようにスクリプトを追加します。
"scripts": {
"api:test": "node_modules/.bin/mocha --timeout 10000 --recursive api_test/"
},
テストディレクトリでコマンドを入力します。
npm run api:test