JavaScript를 테스트하기 위해 Mocha를 사용합니다. 내 테스트 파일에는 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()
특정 세트를 쉽게 찾고 선택할 수 있도록 네임 스페이스에 중첩 된 호출을 사용 하십시오.
답변
사용자의 사용 패턴에 따라, 당신은 단지 사용하는 것 같아서 단지 . 우리는 TDD 스타일을 사용합니다. 다음과 같이 보입니다 :
test.only('Date part of valid Partition Key', function (done) {
//...
}
이 테스트 만 모든 파일 / 스위트에서 실행됩니다.
답변
당신이 사용하는 경우 npm test
(package.json 스크립트를 사용) 추가를 사용 --
모카에 이르기까지 PARAM을 전달하는
예 : npm test -- --grep "my second test"
편집 : --grep
약간 까다로운 것처럼 보일 수 있습니다 (아마 다른 주장에 따라 다름). 당신은 할 수 있습니다 :
package.json을 수정하십시오.
"test:mocha": "mocha --grep \"<DealsList />\" .",
또는 --bail
덜 까다로운 것으로 보이는 대안 사용
npm test -- --bail
답변
파일 이름으로 단일 테스트 실행 –
실제로 mocha.opts에서 glob 패턴 (예 🙂 을 제거하면 파일 이름으로 ( “it () ./test/**/*.spec.js
-string -grepping”이 아니라) 단일 모카 테스트 를 실행할 수도 있습니다 .
node_modules/.bin/mocha --opts test/mocha.single.opts test/self-test.spec.js
여기 내 mocha.single.opts가 있습니다 (앞서 언급 한 글로브 라인이 누락 된 경우에만 다릅니다)
--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
( --
!)
답변
‘describe’, ‘it’또는 ‘context’전에. 만 사용하십시오. “$ npm run test : unit”을 사용하여 실행하며 .only 만있는 장치 만 실행합니다.
describe.only('get success', function() {
// ...
});
it.only('should return 1', function() {
// ...
});
답변
위의 솔루션은 저에게 효과적이지 않았습니다. 단일 테스트를 실행하는 다른 방법은
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’는 파일 경로입니다.