IT

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

itgroup 2022. 12. 7. 22:21
반응형

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 

어떤 텍스트가 뒤에 오든 상관없다.npm대본

여기에는 여러 가지 방법이 있습니다.

  • 전체 테스트 사례 목록에서 하나의 테스트만 실행하려는 경우 테스트 사례 에만 쓸 수 있습니다.

    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

반응형