2016-08-08 1 views
0

를 인쇄하지 테스트합니다. 다음 코드를 사용하여 단위 테스트를 실행하고 해당 코드 보고서를 생성합니다.Node.js를 이스탄불/모카 단위 내가 단위 테스트를 실행하고 코드 커버리지 보고서를 생성 할 수 Node.js를에 모카와 함께 <a href="https://github.com/gotwarlost/istanbul" rel="nofollow">Istanbul</a>를 사용하기 위해 노력하고있어 자세한

istanbul cover _mocha -- -R tap 'test/*.test.js' > test.tap; istanbul report clover 

코드 커버리지 보고서없이 단위 테스트를 실행하려면 다음을 실행하면됩니다.

mocha 

이 두 가지 방법 모두 정상적으로 작동합니다. 그러나 첫 번째 방법은 실제로 콘솔에 아무 것도 인쇄하지 않습니다. 어떤 단위 테스트가 현재 실행 중인지 전혀 알지 못합니다. 완전히 완료되면 정확히 무엇이 잘못되었는지 전혀 알 수 없습니다. 어떤 형식의 오류 로그도 제공하지 않습니다. 두 번째 방법은 각 테스트 후에 특정 단위 테스트의 상태를 출력하므로 현재 수행중인 단위 테스트를 콘솔에서 쉽게 볼 수 있으며 모든 테스트가 완료된 후 세부적인 결과 및 실패 원인에 대한 오류 로그를 제공하므로 디버깅을 시작할 수 있습니다. 첫 번째 방법은이 중 하나를 제공하지 않습니다.

이스탄불를 사용하여 코드 커버리지 보고서를 생성 할 수 있지만 그냥 mocha 인쇄를 실행하는 콘솔에 모든 세부 사항을 인쇄 한 어쨌든이 있나요? 그렇다면 어떻게해야합니까? 일부 테스트를 실행하고 완료하는 데 다소 시간이 걸립니다. 이스탄불에서 코드 적용 범위 보고서를 작성할 때 현재 테스트가 정확히 무엇인지, 테스트에 대한 자세한 내용을 실시간으로 확인하는 것이 좋습니다.

답변

1

귀하의 istanbul 명령은 test.tap에 출력을 리디렉션, 그래서 당신은 콘솔에서 볼하지 않을 수 있습니다 : 당신이를 제거 할 수 있도록, test.tap의 테스트 출력이 이스탄불에 의해 필요하지 않은

istanbul cover _mocha -- -R tap 'test/*.test.js' > test.tap; istanbul report clover 
               ^^^^^^^^^^ 

리다이렉션. 명령이 파일 쓰기를 계속하려면, tee 명령을 사용하여 테스트 출력을 파일과 콘솔에 모두 쓸 수 있습니다.

+0

신난다! 정말 고마워. 코드를'istanbul cover _mocha -R tap 'test/*. test.js'로 바꾼다. 티 test.tap; 이스탄불 신고 클로버 '가 효과가있는 것으로 보인다. 아직도'모카 '를 달리는 것만 큼 슬픈 듯이 자세히 설명하는 것처럼 보이지 않습니다. 'mocha'와 같은 형식으로 콘솔에 출력되기를 바랍니다. 오 잘. 다시 한번 감사드립니다. –

+0

'tap'리포터를 사용할 필요가 없습니다. '-R tap '부분을 빠뜨리면'mocha' 명령과 같은 결과를 얻을 수 있습니다. – cartant

+0

전 완전히 이해하지 못하는 이상한 Jenkins 플러그인을 사용하고 있습니다. 나는 그들이 수돗물 파일 tho을 요구한다라고 꽤 확신한다. –

1

이 시도 : https://github.com/glenjamin/mocha-multi

모카 멀티는 process.stdout와 기자가 일을 할 때마다 process.stderr의 값을 변경 유지합니다.

실행이 : istanbul cover _mocha -- --recursive --reporter mocha-multi --reporter-options list=-,tap=test.tap 'test/*.test.js' && istanbul report clover

관련 문제