dotnet testdotnet test

이 항목 적용 대상: ✓ .NET Core 1.x SDK .NET Core 2.x SDKThis topic applies to: ✓ .NET Core 1.x SDK .NET Core 2.x SDK

nameName

dotnet test - 단위 테스트를 실행하는 데 사용하는 .NET 테스트 드라이버입니다.dotnet test - .NET test driver used to execute unit tests.

개요Synopsis

dotnet test [<PROJECT>] [-a|--test-adapter-path] [--blame] [-c|--configuration] [--collect] [-d|--diag] [-f|--framework] [--filter]
    [-l|--logger] [--no-build] [--no-restore] [-o|--output] [-r|--results-directory] [-s|--settings] [-t|--list-tests] 
    [-v|--verbosity] [-- <RunSettings arguments>]

dotnet test [-h|--help]

설명Description

dotnet test 명령은 지정된 프로젝트에서 단위 테스트를 실행하는 데 사용됩니다.The dotnet test command is used to execute unit tests in a given project. dotnet test 명령은 프로젝트에 대해 지정된 테스트 러너 콘솔 애플리케이션을 시작합니다.The dotnet test command launches the test runner console application specified for a project. 테스트 러너는 단위 테스트 프레임워크(예: MSTest, NUnit 또는 xUnit)에 대해 정의된 테스트를 실행하고 각 테스트의 성공 여부를 보고합니다.The test runner executes the tests defined for a unit test framework (for example, MSTest, NUnit, or xUnit) and reports the success or failure of each test. 모든 테스트에 성공하면 Test Runner가 종료 코드로 0을 반환합니다. 테스트가 하나라도 실패하면 1을 반환합니다.If all tests are successful, the test runner returns 0 as an exit code; otherwise if any test fails, it returns 1. 테스트 러너와 단위 테스트 라이브러리는 NuGet 패키지로 패키지되고 프로젝트에 대한 일반적인 종속성으로 복원됩니다.The test runner and the unit test library are packaged as NuGet packages and are restored as ordinary dependencies for the project.

테스트 프로젝트는 다음 샘플 프로젝트 파일에서 볼 수 있듯이 일반적인 <PackageReference> 요소를 사용하여 테스트 러너를 지정합니다.Test projects specify the test runner using an ordinary <PackageReference> element, as seen in the following sample project file:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
    <PackageReference Include="xunit" Version="2.4.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
  </ItemGroup>

</Project>

인수Arguments

PROJECT

테스트 프로젝트의 경로입니다.Path to the test project. 지정하지 않으면 현재 디렉터리로 기본 설정됩니다.If not specified, it defaults to current directory.

옵션Options

-a|--test-adapter-path <PATH_TO_ADAPTER>

테스트 실행에 지정된 경로에서 사용자 지정 테스트 어댑터를 사용합니다.Use the custom test adapters from the specified path in the test run.

--blame

테스트를 원인 모드로 실행합니다.Runs the tests in blame mode. 이 옵션은 테스트 호스트를 충돌시키는 문제가 있는 테스트를 격리하는 데 유용합니다.This option is helpful in isolating the problematic tests causing test host to crash. 현재 디렉터리에 크래시 전에 테스트 실행 순서를 캡처하는 Sequence.xml이라는 출력 파일을 만듭니다.It creates an output file in the current directory as Sequence.xml that captures the order of tests execution before the crash.

-c|--configuration {Debug|Release}

빌드 구성을 정의합니다.Defines the build configuration. 기본값은 Debug이지만 프로젝트의 구성으로 이 기본 SDK 설정이 재정의될 수 있습니다.The default value is Debug, but your project's configuration could override this default SDK setting.

--collect <DATA_COLLECTOR_FRIENDLY_NAME>

테스트 실행에 대한 데이터 수집기를 사용하도록 설정합니다.Enables data collector for the test run. 자세한 내용은 테스트 실행 모니터링 및 분석을 참조하세요.For more information, see Monitor and analyze test run.

-d|--diag <PATH_TO_DIAGNOSTICS_FILE>

테스트 플랫폼에 대한 진단 모드를 사용하도록 설정하고 지정된 파일에 진단 메시지를 기록합니다.Enables diagnostic mode for the test platform and write diagnostic messages to the specified file.

-f|--framework <FRAMEWORK>

특정 프레임워크에 대한 테스트 이진 파일을 찾습니다.Looks for test binaries for a specific framework.

--filter <EXPRESSION>

지정된 식을 사용하여 현재 프로젝트의 테스트를 필터링합니다.Filters out tests in the current project using the given expression. 자세한 내용은 필터 옵션 세부 정보 섹션을 참조하세요.For more information, see the Filter option details section. 선택적 단위 테스트 필터링을 사용하는 방법에 대한 자세한 내용 및 예제는 선택적 단위 테스트 실행을 참조하세요.For more information and examples on how to use selective unit test filtering, see Running selective unit tests.

-h|--help

명령에 대한 간단한 도움말을 출력합니다.Prints out a short help for the command.

-l|--logger <LoggerUri/FriendlyName>

테스트 결과에 대해 로거를 지정합니다.Specifies a logger for test results.

--no-build

테스트 프로젝트를 실행하기 전에 빌드하지 않습니다.Doesn't build the test project before running it. 또한 --no-restore 플래그를 암시적으로 설정합니다.It also implicit sets the --no-restore flag.

--no-restore

명령을 실행할 때 암시적 복원을 실행하지 않습니다.Doesn't execute an implicit restore when running the command.

-o|--output <OUTPUT_DIRECTORY>

실행할 이진 파일을 찾을 디렉터리입니다.Directory in which to find the binaries to run.

-r|--results-directory <PATH>

테스트 결과가 배치될 디렉터리입니다.The directory where the test results are going to be placed. 지정한 디렉터리가 없으면 생성됩니다.If the specified directory doesn't exist, it's created.

-s|--settings <SETTINGS_FILE>

테스트 실행에 사용할 .runsettings 파일입니다.The .runsettings file to use for running the tests. .runsettings 파일을 사용하여 단위 테스트를 구성합니다.Configure unit tests by using a .runsettings file.

-t|--list-tests

현재 프로젝트에서 검색된 테스트를 모두 나열합니다.List all of the discovered tests in the current project.

-v|--verbosity <LEVEL>

명령의 세부 정보 표시 수준을 설정합니다.Sets the verbosity level of the command. 허용되는 값은 q[uiet], m[inimal], n[ormal], d[etailed], diag[nostic]입니다.Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].

RunSettings arguments

테스트를 위해 RunSettings 구성으로 전달되는 인수입니다.Arguments passed as RunSettings configurations for the test. 인수는 “-- ” 뒤에 [name]=[value] 쌍으로 지정됩니다(-- 뒤 공백 주의).Arguments are specified as [name]=[value] pairs after "-- " (note the space after --). 공백은 여러 [name]=[value] 쌍을 구분하는 데 사용됩니다.A space is used to separate multiple [name]=[value] pairs.

예: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=TrueExample: dotnet test -- MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True

RunSettings에 대한 자세한 내용은 vstest.console.exe: Passing RunSettings args(vstest.console.exe: RunSettings 인수 전달)를 참조하세요.For more information about RunSettings, see vstest.console.exe: Passing RunSettings args.

예제Examples

현재 디렉터리에 있는 프로젝트에서 테스트를 실행합니다.Run the tests in the project in the current directory:

dotnet test

test1 프로젝트에서 테스트를 실행합니다.Run the tests in the test1 project:

dotnet test ~/projects/test1/test1.csproj

현재 디렉터리의 프로젝트에서 테스트를 실행하고 trx 형식으로 테스트 결과 파일을 생성합니다.Run the tests in the project in the current directory and generate a test results file in the trx format:

dotnet test --logger:trx

필터 옵션 세부 정보Filter option details

--filter <EXPRESSION>

<Expression><property><operator><value>[|&<Expression>] 형식이 있습니다.<Expression> has the format <property><operator><value>[|&<Expression>].

<property>은(는) Test Case의 특성입니다.<property> is an attribute of the Test Case. 다음은 인기 있는 단위 테스트 프레임 워크에서 지원되는 속성입니다.The following are the properties supported by popular unit test frameworks:

테스트 프레임워크Test Framework 지원되는 속성Supported properties
MSTestMSTest
  • FullyQualifiedNameFullyQualifiedName
  • nameName
  • ClassNameClassName
  • 우선 순위Priority
  • TestCategoryTestCategory
xUnitxUnit
  • FullyQualifiedNameFullyQualifiedName
  • DisplayNameDisplayName
  • 특성Traits

<operator>은(는) 속성과 값 사이의 관계를 설명합니다.The <operator> describes the relationship between the property and the value:

연산자Operator 함수Function
= 정확하게 일치Exact match
!= 정확하게 일치하지 않음Not exact match
~ 포함Contains

<value>는 문자열입니다.<value> is a string. 모든 조회는 대/소문자를 구분합니다.All the lookups are case insensitive.

<operator>이(가) 없는 식은 FullyQualifiedName 속성의 contains(으)로 자동으로 간주됩니다(예를 들어 dotnet test --filter xyz과(와) dotnet test --filter FullyQualifiedName~xyz이(가) 동일).An expression without an <operator> is automatically considered as a contains on FullyQualifiedName property (for example, dotnet test --filter xyz is same as dotnet test --filter FullyQualifiedName~xyz).

식은 조건부 연산자와 조인할 수 있습니다.Expressions can be joined with conditional operators:

연산자Operator 함수Function
| 또는OR      
& ANDAND

조건부 연산자를 사용 하는 경우 식을 괄호로 묶을 수 있습니다(예: (Name~TestMethod1) | (Name~TestMethod2)).You can enclose expressions in parenthesis when using conditional operators (for example, (Name~TestMethod1) | (Name~TestMethod2)).

선택적 단위 테스트 필터링을 사용하는 방법에 대한 자세한 내용 및 예제는 선택적 단위 테스트 실행을 참조하세요.For more information and examples on how to use selective unit test filtering, see Running selective unit tests.

참고 항목See also