dotCover 기능

dotCover는 Visual StudioJetBrains Rider와 호환되는 .NET 유닛 테스트 및 코드 커버리지 도구로서, 유닛 테스트에 포함되는 코드 범위를 파악할 수 있도록 도와주고, 코드 커버리지를 시각화할 수 있는 다양한 방법을 제공하며, 지속적 통합에 사용할 수 있습니다. dotCover는 .NET Framework, .NET Core, Mono, Unity용 Mono를 대상으로 하는 애플리케이션에서 구문 수준의 코드 커버리지를 산출하고 보고합니다.

Visual Studio와 Rider 통합

Visual Studio 및 JetBrains Rider와 통합

dotCover는 Visual Studio 및 JetBrains Rider의 플러그인으로서, 사용자가 코드 에디터를 벗어나지 않고 코드 커버리지를 분석하며 시각화할 수 있는 기능을 제공합니다. IDE에서 바로 유닛 테스트를 실행하고 커버리지 결과를 분석하는 기능을 비롯해 다양한 색상 테마, 새로운 아이콘 및 메뉴 지원도 포함합니다.

dotCover는 Visual Studio 2010~2019 및 JetBrains Rider 2018.2 이상을 지원합니다.

macOS 및 Linux 지원

Windows, macOS, Linux 지원

dotCover는 Windows에서 Visual Studio 또는 JetBrains Rider의 일부로 포함되어 .NET Framework 1.0~4.7 및 .NET Core 1.0~3.0을 대상으로 하는 프로젝트를 지원합니다. macOS 및 Linux에서는 JetBrains Rider의 일부로서, .NET Core 1.0~3.0, Mono 5.10 이상, Unity용 Mono 2018.3 이상을 대상으로 하는 프로젝트의 코드 커버리지를 분석하는 데에만 사용됩니다.

번들형 유닛 테스트 러너

유닛 테스트 실행 및 관리

dotCover에는 또 다른 .NET 개발자용 JetBrains 도구인 ReSharper와 공유되는 유닛 테스트 러너가 포함되어 있습니다.

이 러너는 Visual Studio/JetBrains Rider에서 작동하며, 세션 전체에서 유닛 테스트를 관리할 수 있는 기능을 제공하고, MSTest, NUnit, xUnit(모두 별도 설정 없이 사용) 및 MSpec(플러그인 사용) 등 여러 종류의 유닛 테스트 프레임워크를 지원합니다.

dotCover로 연속 테스트

연속 테스트

dotCover는 최근 코드 변경으로 영향을 받는 유닛 테스트를 즉시 파악하여, 해당 테스트를 자동으로 다시 실행하는 현대적인 유닛 테스트 워크플로를 사용하는 연속 테스트를 지원합니다.

영향을 받은 테스트는 파일을 저장하거나 솔루션을 빌드할 때 또는 dotCover에 명시적으로 작업을 지시하는 즉시, 기본 설정을 기반으로 실행됩니다.

연속 테스트 모드는 모든 유닛 테스트 세션에서 전환 가능합니다. 이 방식으로 연속으로 실행하려는 테스트와 기존 방식으로 실행할 테스트를 선택할 수 있습니다.

dotCover의 유닛 테스트 러너로 유닛 테스트 실행 및 관리

유닛 테스트 커버리지

dotCover의 주요 사용 사례는 유닛 테스트 커버리지를 분석하는 것입니다. 즉, 유닛 테스트에 포함된 애플리케이션의 비즈니스 로직 부분과 그렇지 않은 부분을 식별합니다.

dotCover는 유닛 테스트 실행 결과와 함께, 특정 프로젝트, 네임스페이스, 유형 또는 유형 멤버가 얼마나 완벽하게 유닛 테스트에 포함되었는지 보여주는 커버리지 트리를 표시합니다.

Visual Studio 및 JetBrains Rider에서 커버리지 강조 표시

커버리지 데이터를 시각화하려는 경우, dotCover로 코드 에디터 내에서 바로 코드줄을 강조 표시할 수 있습니다. 강조 표시용 마커와 색상 배경 사이를 전환하거나 둘 다 표시하는 옵션이 있습니다.

강조 표시 기능은 포함 코드 및 제외 코드를 비롯해 해당 유닛 테스트의 결과도 표시합니다. 녹색은 테스트 결과가 통과임을 의미하고 빨간색은 구문을 포함하는 1개 이상의 테스트 결과가 실패임을 의미합니다. 회색은 포함되지 않은 코드를 나타냅니다.

코드에서 해당 코드가 포함된 유닛 테스트로 이동

커버링 테스트 탐색

dotCover는 클래스, 메소드, 속성 등의 코드 내 특정 위치를 포함하는 테스트를 탐지하는 명령어 및 키보드 단축키를 제공합니다.

명령어는 Visual Studio 텍스트 에디터 또는 dotCover의 Coverage Tree(커버리지 트리) 보기에서 실행할 수 있습니다.

커버링 테스트 목록이 표시된 팝업에서 해당 테스트 중 어느 것으로든 이동할 수 있습니다. 또한, 목록에 나온 테스트를 즉시 실행하거나 기존 유닛 테스트 세션에 추가할 수도 있습니다.

dotCover 핫스팟 뷰

핫스팟 뷰

Hot Spots(핫스팟) 뷰는 솔루션에서 가장 위험한 메소드를 식별할 수 있도록 돕기 위해 설계되었습니다. 핫스팟은 메소드의 높은 순환 복잡도와 낮은 유닛 테스트 커버리지를 고려하여 계산됩니다.

원격 시스템에서 커버리지 분석 실행

원격 코드 커버리지

원격 시스템에서 유닛 테스트의 커버리지 분석을 실행하여 결과를 로컬 컴퓨터로 가져올 수 있습니다. dotCover는 커버리지 분석이 시작되는 즉시, 실행할 바이너리 및 테스트 목록을 원격 서버로 전송합니다.

모든 계산이 서버에서 이루어진 다음, 커버리지 스냅샷이 사용 중인 컴퓨터로 전송됩니다. 그 후에는 로컬 커버리지 실행 이후에 하는 작업과 마찬가지 방식으로 커버리지 결과를 검사하면 됩니다.

속성 필터가 추가된 커버리지 필터

커버리지 필터

때로는 커버리지 데이터 솔루션 전체를 알고 싶지는 않을 수 있습니다. 예를 들어, ObsoleteAttribute로 표시된 코드나 특정 기존 프로젝트의 커버리지 통계에 관심이 없을 수 있습니다.

이러한 경우, 프로젝트, 네임스페이스, 유형 또는 유형 멤버 이름에 따라 전역 또는 솔루션별 커버리지 필터를 설정할 수 있습니다. 특정 속성으로 표시되거나 표시되지 않은 코드의 커버리지 정보 수집을 제한하는 속성 필터도 사용할 수 있습니다.

커버리지 결과에서 특정 항목이 제외되는 즉시, dotCover에서 통계를 다시 계산

커버리지 트리에서 노드 제외

사전 설정하거나 열려 있는 솔루션에 적용한 필터 대신, 작업 중인 항목을 커버리지 결과에서 제외할 수 있습니다.

커버리지 데이터를 이미 수집한 경우, 커버리지 트리에서 특정 노드를 제외할 수 있습니다(또한, 선택적으로 영구 커버리지 필터 생성 가능). 노드를 제외하면, dotCover에서 그 즉시 커버리지 통계를 다시 계산합니다.

dotCover는 커버리지 데이터를 XML, HTML 및 JSON 등의 여러 형식으로 내보냄

다양한 보고서 형식

dotCover를 사용하면 사용자에게 필요한 방식으로 커버리지 데이터를 처리할 수 있습니다.

커버리지 보고서를 HTML, XML, JSON 및 NDepend용 XML 등의 다양한 형식으로 내보내어, 나머지 팀원과 공유하거나 커버리지 정보를 외부 서비스로 전달할 수 있습니다.

dotCover는 수동 테스트에 사용 가능

수동 테스트용 코드 커버리지

유닛 테스트 커버리지 대신, dotCover는 Visual Studio에서 실행된 .NET 애플리케이션에서 커버리지 분석을 실행할 수 있습니다.

QA 엔지니어는 이 기능을 사용하여 사용 사례 시나리오를 실행하고 해당 사용 사례가 진행되는 동안 코드의 어떤 부분이 실제 어디에서 실행되는지 검사할 수 있습니다. 커버리지 스냅샷을 저장 및 병합하는 기능을 이용하면 중요한 테스트 사례를 실행할 수도 있습니다.

지속적 통합의 일부로 포함되어 TeamCity에서 코드 커버리지 강조 표시

지속적 통합의 일부로 포함되는 커버리지 분석

dotCover는 지속적 통합 서버, 그 중에서도 JetBrains 제품인 TeamCity와의 호환성이 뛰어납니다.

우선 dotCover는 로컬 시스템에서 커버리지 분석을 실행하지 않고도 Visual Studio의 TeamCity 추가 기능을 통해 TeamCity 서버에서 커버리지 데이터를 가져올 수 있습니다.

또한, dotCover 커버리지 분석 엔진이 TeamCity 무료 버전에 포함되어, 지속적 통합 프로세스의 일부로서 커버리지 실행 일정을 계획하고 서버 측 커버리지 보고서를 생성할 수 있습니다. TeamCity는 dotCover 콘솔 러너의 결과를 파악하여 빌드 로그에 오류 및 경고를 강조 표시합니다.

다운로드

30일 무료 평가판