2017-02-01 1 views
0

SonarQube 인스턴스에서보고되는 프로젝트에 자바 스크립트 및 타이프 스크립트 소스가 혼합되어 있습니다.전체 범위 메트릭에 로컬 결과가 반영되지 않습니다.

최근까지 우리는 순수한 자바 스크립트 코드베이스를 실행 중이었고, 우리의 측정 항목에 대한 소니와 기본 자바 스크립트 플러그인을 사용하고있었습니다.

이제 우리는 SonarTsPlugin ( https://github.com/Pablissimo/SonarTsPlugin)를 구성한 타이프 라이터와 두 lcov 파일 (꿀꺽에게 & 이스탄불을 사용하여) 생성되는 그래서 우리의 JS 소스 하나는 TS에 대한 다른을 가지고 우리의 코드의 대부분을 이전 가졌어요.

Google 검색 결과를 현지에서 볼 때 결합 률이 95 % 이상 (꿀풀 이스탄불 조합 사용)이지만 SonarQube가 lcov 파일을 읽은 후 계산을 적용하면 전체 적용 범위가 90 % 미만으로 표시됩니다. 나는 다른 글이 소나가 어떻게 전체적인 모습을 계산 하는지를 보았다. - Sonar-Overall Coverage

나는 왜 그런 큰 차이가 있는지 알아 내려고하고있다.

우리는 그들의 수중 음파 탐지기 스캐너 플러그인 젠킨스를 사용하고 우리의 수중 음파 탐지기 인스턴스 및 게시 결과에 연결하는 것 동안 빌드 로그를 볼 때, 나는 다음을 참조 :

enter image description here

전체 범위 센서가 보인다 javascript 소스와 관련된 lov 파일을 읽은 후에 만 ​​실행됩니다.

typsecript 소스에 대한 karma-remapped-coverage.json 파일을 로그에서 더 아래로 읽을 때 센서가 다시 트리거되지 않는 것 같습니다. 나는 이것이 내가 그런 차이를 보게되는 이유가 될 수 있을지 궁금해했다.

답변

1

SonarQube 버전을 나열하지 않지만 6.2는 "분석기가 필수"실행 가능 라인 "데이터를 공급하는 언어에 대해"강제 적용 범위 0 "기능을 포함합니다. 표준 적용 범위 보고서는 이없고 테스트가있는 파일을 완전히 무시합니다.

파일이 10 개 있고, 파일 당 줄이 100 개인 것으로 가정합니다. 그들 중 8 명은 100 % 테스트를 받았으며 그 중 2 명은 전혀 테스트가 없습니다. 표준 보험 보상 보고서는 보험 적용 범위가 실제로 80 % 일 때 보험 적용 범위가 100 %라고 말합니다.

SonarQube 6.2의 "force coverage to 0"기능을 사용하면 SonarQube에서 전체 집계 번호가 더 낮은 이유를보다 정확하게 파악할 수 있습니다.

+0

흠, 우리는 버전 5.6을 사용하고 있으며 생각하지도 않는 시간 동안 인프라 팀에서 업그레이드를 계획하지 않습니다. – mindparse

+0

IIRC 5.6에는 'Force coverage to zero'의 결함 버전이 포함되어 있으므로 설명이 가능합니다. –

+0

문서를 읽었을 때,이 Force Zero Coverage 설정에 대해 혼란스러워하며 여기에 도움이된다고 생각하는 이유 - https : //docs.sonarqube.org/display/PLUG/JavaScript+Coverage+Results+Import lcov 보고서가 지정되면 force zero coverage 설정보다 우선하므로 lcov를 제공 한 이래로 도움이되지 않는다고합니다. 음파 탐지기 사용 경로 – mindparse