[Scala]sbt-scoverage에서 일부 파일 제외

4214 단어 Scala
sbt-scoverage, 매우 편리합니다. plugin.sbt 에 기술하는 것만으로 곧바로 커버리지율을 내 줍니다.

plugin.sbt
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.6.0")
// カバレッジ計測
sbt clean coverage test

// カバレッジレポート作成
sbt coverageReport

// 繋げてかく場合
sbt clean coverage test coverageReport

자신의 환경이라면 이런 느낌이 들었습니다.


controllers.javascript 의 커버리지율이 0%가 되네요. 그렇습니다, 쓰지 않기 때문에.

이것 때문에 합계의 커버리지율이 내려가면 조금 납득하지 않네요. 그래서 제외하고 싶습니다.

제외하다



공식 github에는 그와 같은 것이있었습니다. ( htps : // 기주 b. 코 m / s 코즈 라게 / sbt-s 코즈 라게 # 에 xc ぅ에서 % 20c )
coverageExcludedPackages
정규식으로 커버리지 측정 대상에서 제외할 수 있습니다. 세미콜론으로 구분

build.sbt
coverageExcludedPackages := "<empty>;Reverse.*;.*AuthService.*;models\\.data\\..*"

이것을 사용할 수 있을 것 같네요. 내 디렉토리 구성은 이렇게



이럴까요?

build.sbt
coverageExcludedPackages := ".*controllers.javascript.*"


가져오기 변경 후 실행
sbt coverageReport



음 ... 변하지 않습니다

시행착오



정규식을 검토해 봅니다.

원래 공식 문서의 예로 쓰여진 정규식, 먼저 수수께끼의 물체가 들어 있습니다.

build.sbt
<empty>;

세미콜론은 단락 문자이므로 알겠습니다만, <empty> 라고 뭐죠?

오바후로에서도 <empty> をつけて試してみて! 라는 코멘트가 붙은 질문이 있었습니다. ( h tp : // / c. 이 m/st4k #쿠에 s치온 s/32331183 )
우선 흉내 봅시다.
coverageExcludedPackages := "<empty>;.*controllers.javascript.*"
sbt coverageReport

[info] Statement coverage.: 78.68%

오, 커버리지 비율이 증가했습니다.



그래서 78%로 상승했습니다. 이것이 본래의 값이군요.

<empty>; 가 있는지 상당히 조사했는데 전혀 몰랐습니다.
다른 사람도 「잘 모르겠지만 필요해」라고 말하고 있으므로, 깊이 생각하지 않는 것이 좋을지도 모릅니다. ( h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 47940361 / s 코 ょ 라게 호 호와 에 xc )

안의 코드를 쫓고있었습니다 만, 상당히 시끄럽고 포기했습니다 ...

요약


  • 테스트 커버리지에서 제외하려는 경우가있는 경우 coverageExcludedPackages
  • 정규 표현이 통과하지 않는 경우는, 선두에 <empty>;를 붙여 보자
  • 좋은 웹페이지 즐겨찾기