Mocha로 단일 테스트를 실행하는 방법은 무엇입니까?
자바스크립트 테스트에는 Mocha를 사용합니다.제 테스트 파일에는 5개의 테스트가 포함되어 있습니다.파일 내의 모든 테스트가 아닌 특정 테스트(또는 일련의 테스트)를 실행할 수 있습니까?
mocha 옵션을 사용해 보십시오.
-g, --grep <pattern> only run tests matching <pattern>
유효한 JavaScript regex를 다음과 같이 사용할 수 있습니다.<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
(패키지 사용).json 스크립트) 추가 사용--
모카에게 매개 변수를 전달하다
예.npm test -- --grep "my second test"
편집: 다음과 같습니다.--grep
조금 까다로울 수 있습니다(다른 인수에 따라 다릅니다).다음과 같은 작업을 수행할 수 있습니다.
패키지를 수정합니다.json:
"test:mocha": "mocha --grep \"<DealsList />\" .",
또는 다른 방법으로 사용할 수도 있습니다.--bail
덜 까다로워 보인다.
npm test -- --bail
.는 'descript', 'it' 또는 'context' 앞에만 사용하십시오."$npm run test:unit"을 사용하여 실행하며 .only를 사용하는 유닛만 실행됩니다.
describe.only('get success', function() {
// ...
});
it.only('should return 1', function() {
// ...
});
단일 테스트 실행(파일 이름 사용)
실제로 글로벌 패턴(예를 들어 glob 패턴)을 삭제하면 파일명('it()-string-grepping'뿐 아니라)으로 단일 mocha 테스트를 실행할 수도 있습니다../test/**/*.spec.js
각각 mocha.opts에서 복사본을 만듭니다.다음은 생략합니다.
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 에서 다양한 스위치를 덮어쓸 수 있지만,--
)글로브를 덮어쓸 수 없습니다.그 링크에도 몇 가지 설명이 있습니다.
힌트: 만약node_modules/.bin/mocha
로컬 패키지 mocha를 사용하는 것은 혼란스러운 일입니다.그냥 쓸 수도 있어요.mocha
글로벌하게 인스톨 되어 있는 경우는, 을 참조해 주세요.
그리고 만약 당신이 편안함을 원한다면package.json
: 그래도 : 삭제**/*
- 당신의 지구본 같은 것mocha.opts
여기에 삽입하여 전체 테스트를 위해 한 번의 테스트를 위해 남겨둡니다.
"test": "mocha ./test/**/*.spec.js",
"test-watch": "mocha -R list -w ./test/**/*.spec.js",
"test-single": "mocha",
"test-single-watch": "mocha -R list -w",
사용방법:
> npm run test
각각 다음과 같다.
> npm run test-single -- test/ES6.self-test.spec.js
여기에는 여러 가지 방법이 있습니다.
전체 테스트 사례 목록에서 하나의 테스트만 실행하려는 경우 테스트 사례 앞에만 쓸 수 있습니다.
it.only('<test scenario name>', function() { // ... });
또는 다음과 같이 mocha grep 명령을 실행할 수도 있습니다.
mocha -g <test-scenario-name>
하나의 설명 섹션에 있는 모든 테스트 케이스를 실행하는 경우 설명에만 쓸 수도 있습니다.
describe.only('<Description of the tests under this section>', function() { // ... });
테스트 파일이 여러 개 있고 그 중 하나만 실행하는 경우 다음 명령을 수행합니다.
npm test <filepath>
예:
npm test test/api/controllers/test.js
여기서 'test/api/controllers/test.test'는 파일 경로입니다.
"it.only"를 사용해 볼 수 있습니다.
it.only('Test one ', () => {
expect(x).to.equal(y);
});
it('Test two ', () => {
expect(x).to.equal(y);
});
이 경우 첫 번째 것만 실행됩니다.
위의 솔루션은 나에게 효과가 없었다.단일 테스트를 실행하는 다른 방법은
mocha test/cartcheckout/checkout.js -g 'Test Name Goes here'
이를 통해 단일 파일에서 특정 이름으로 테스트 케이스를 실행할 수 있습니다.
이 문서를 보면, 다음의 간단한 방법으로 확인할 수 있습니다.
mocha test/myfile
효과가 있습니다.마지막에 '.js'를 생략할 수 있습니다.
하나의 파일을 실행하려고 하지만 제대로 작동하지 않는 사용자에게는 다음과 같은 설명 스위트로 테스트 케이스를 정리한 후 설명 제목(예: 'My Test Description')을 패턴으로 사용해야 했습니다.
describe('My Test Description', () => {
it('test case 1', () => {
// My test code
})
it('test case 2', () => {
// My test code
})
})
그 후 실행
yarn test -g "My Test Description"
또는
npm run test -g "My Test Description"
Mocha(또는 -f)를 사용하여 문자열을 포함하는 테스트를 선택할 수 있습니다.다음은 예를 제시하겠습니다.
mocha -f 'my test x'
다음을 포함하는 모든 테스트를 수행합니다.my test x
쪽이든it()
,describe()
★★★★★★★★★★★★★★★★★」context()
★★★★★★ 。
npm 테스트를 사용할 때 왜 grep 방식이 작동하지 않는지 모르겠습니다.그래도 잘 되네.어떤 이유로 테스트 폴더도 지정해야 합니다.
npm test -- test/sometest.js
모든 테스트를 하나의 test.js 파일로 통합하고 패키지에 스크립트를 추가합니다.json:
"scripts": {
"api:test": "node_modules/.bin/mocha --timeout 10000 --recursive api_test/"
},
테스트 디렉토리에 다음 명령을 입력합니다.
npm run api:test
언급URL : https://stackoverflow.com/questions/10832031/how-to-run-a-single-test-with-mocha
'IT' 카테고리의 다른 글
Intelij IDEA에서 메서드 파라미터 힌트를 표시하는 방법 (0) | 2022.12.07 |
---|---|
javascript에서 플로트를 포맷하는 방법은? (0) | 2022.12.07 |
MySQL은 데이터베이스 파일을 어디에 저장합니까? (0) | 2022.11.27 |
Spring MVC 컨트롤러 메서드에서 값이 반환되지 않을 경우 반환되는 항목 (0) | 2022.11.27 |
MySQL에서의 교차 대신 (0) | 2022.11.27 |