[javascript] Mocha로 단일 테스트를 실행하는 방법은 무엇입니까?

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’는 파일 경로입니다.