Generic Test Data

Table of Contents

SonarQube는 테스트 커버리지 및 테스트 실행 결과 임포트를 위한 제네릭(generic) 포맷을 지원합니다. 여러분이 사용하는 커버리지 엔진의 네이티브 출력 포맷이 사용하는 언어 플러그인에 적합하지 않은 경우, 해당 출력 포맷을 SonarQube의 제네릭 포맷으로 변경할 수 있습니다.

제네릭 커버리지(Generic Coverage)

보고서의 경로는 콤마(,) 구분자로 구분하고 다음 속성값으로 전달합니다:

  •  sonar.coverageReportPaths

지원하는 포맷은 sonar-generic-coverage.xsd에 기술되어 있습니다. 형태는 다음과 같습니다:

<coverage version="1">
  <file path="xources/hello/NoConditions.xoo">
    <lineToCover lineNumber="6" covered="true"/>
    <lineToCover lineNumber="7" covered="false"/>
  </file>
  <file path="xources/hello/WithConditions.xoo">
    <lineToCover lineNumber="3" covered="true" branchesToCover="2" coveredBranches="1"/>
  </file>
</coverage>

루트 노드의 이름은 "coverage"로 지정해야 하며, version 속성값은 "1"로 설정해야 합니다.

테스트를 통해 커버되는 각 파일의 이름을 "file" 엘리먼트에 추가하며, 해당 엘리먼트의 "path" 속성은 절대 경로 혹은 루트 디렉토리에 대한 상대 경로로 지정할 수 있습니다.

"file" 엘리먼트 별로, "lineToCover" 속성값을 통해 단위 테스트에 의해 커버될 수 있는 라인 번호를 입력합니다. "lineToCover"는 다음 속성을 포함할 수 있습니다.:

  • "lineNumber" (필수)
  • "covered" (필수): 불리언(boolean) 값으로 테스트케이스가 실제 해당 라인을 검토했는지(hit)를 의미합니다. value indicating whether tests actually hit that line
  • "branchesToCover" (선택): 커버할 수 있는 브랜치의 숫자입니다.
  • "coveredBranches" (선택): 테스트 케이스에 의해 실제 커버된 브랜치의 숫자입니다.

제네릭 실행(Generic Execution)

보고서의 경로는 콤마(,) 구분자로 구분하고 다음 속성값으로 전달합니다:

  • sonar.testExecutionReportsPaths

지원하는 포맷은 다음과 같습니다:

<testExecutions version="1">
  <file path="testx/ClassOneTest.xoo">
    <testCase name="test1" duration="5"/>
    <testCase name="test2" duration="500">
      <skipped message="short message">other</skipped>
    </testCase>
    <testCase name="test3" duration="100">
      <failure message="short">stacktrace</failure>
    </testCase>
    <testCase name="test4" duration="500">
      <error message="short">stacktrace</error>
    </testCase>
  </file>
</testExecutions>

루트 노드의 이름은 "testExecutions"로 지정해야 하며, version 속성값은 "1"로 설정해야 합니다.

각 파일의 이름을 "file" 엘리먼트에 추가하며, 헤당 엘리먼트의 "path" 속성은 절대 경로 혹은 루트 디렉토리에 대한 상대 경로로 지정할 수 있습니다.

(warning) 커버리지 리포트와 달리, 보고서에 제공되는 file명은 테스트 코드의 파일명이어야 합니다. 테스트 코드가 커버하는 소스 코드의 파일명을 사용해서는 안됩니다.

"file" 엘리먼트의 "testCase"에 단위 테스트 케이스의 각 테스트 런을 입력합니다. "testCase"는 다음과 같은 속성/하위 요소를 가집니다:

  • "testCase" (필수)
    • "name" (필수): 테스트 케이스 이름
    • "duration" (필수): 테스트 수행 시간(밀리 초 단위)
    • "failure|error|skipped" (선택): 테스트 결과가 OK가 아닌 경우, 해당 원인을 메시지와 함께 상세하게 설명합니다.
      • "message" (필수): 실패의 원인에 대한 짧은 기술
      • "stacktrace" (선택): "failure|error|skipped" 상태 정보를 포함하는 실패 원인데 대한 상세 기술

© 2017-2018 Moses Kim.

별도의 언급이 없는 한, 이 스페이스의 컨텐츠는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
SONARQUBE는 SonarSource SA의 트레이드 마크입니다. 모든 트레이트 마크 및 저작권은 각 소유자의 소유물입니다.

::: SonarQube 관련 문의 : 이메일 :::