다음을 통해 공유


명령줄 옵션 VSTest.Console.exe

VSTest.Console.exe 테스트를 실행하는 명령줄 도구입니다. 명령줄에서 순서에 따라 여러 옵션을 지정할 수 있습니다. 이러한 옵션은 일반 명령줄 옵션나열됩니다.

메모

Visual Studio의 MSTest 어댑터는 호환성을 위해 레거시 모드(mstest.exe테스트 실행과 동일)에서도 작동합니다. 레거시 모드에서는 TestCaseFilter 기능을 활용할 수 없습니다. 어댑터는 testsettings 파일을 지정하거나, forcelegacymode runsettings 파일에서 true 설정하거나, HostType같은 특성을 사용하여 레거시 모드로 전환할 수 있습니다.

ARM 아키텍처 기반 컴퓨터에서 자동화된 테스트를 실행하려면 VSTest.Console.exe사용해야 합니다.

개발자 명령 프롬프트 열어 명령줄 도구를 사용하거나 \ Microsoft Visual Studio\<버전>\<버전>\common7\ide\CommonExtensions\<Platform %Program Files(x86)%도구를 찾을 수 있습니다. Microsoft>.

일반 명령줄 옵션

다음 표에는 VSTest.Console.exe 대한 모든 옵션과 간단한 설명이 나와 있습니다. 명령줄에 VSTest.Console/? 입력하여 비슷한 요약을 볼 수 있습니다.

선택 묘사
[테스트 파일 이름] 지정된 파일에서 테스트를 실행합니다. 여러 테스트 파일 이름을 공백으로 구분합니다.
예: mytestproject.dll, mytestproject.dll myothertestproject.exe
/Settings:[파일 이름] 데이터 수집기 등의 추가 설정을 사용하여 테스트를 실행합니다. 자세한 내용은 .runsettings 파일 사용하여 단위 테스트 구성 참조하세요.
예: /Settings:local.runsettings
/Tests:[테스트 이름] 제공된 값을 포함하는 이름으로 테스트를 실행합니다. 이 명령은 네임스페이스를 포함하여 전체 테스트 이름과 일치합니다. 여러 값을 제공하려면 쉼표로 구분합니다.
예: /Tests:TestMethod1,testMethod2
/Tests 명령줄 옵션은 /TestCaseFilter 명령줄 옵션과 함께 사용할 수 없습니다.
/Parallel 테스트를 병렬로 실행되도록 지정합니다. 기본적으로 컴퓨터에서 사용 가능한 모든 코어를 사용할 수 있습니다. 설정 파일에서 사용할 코어 수를 구성할 수 있습니다.
/Enablecodecoverage 테스트 실행에서 데이터 진단 어댑터 CodeCoverage를 사용하도록 설정합니다.
설정 파일을 사용하여 지정하지 않은 경우 기본 설정이 사용됩니다.
/InIsolation 격리된 프로세스에서 테스트를 실행합니다.
이렇게 격리하면 테스트의 오류에서 vstest.console.exe 프로세스가 중지될 가능성이 적지만 테스트 실행 속도가 느려질 수 있습니다.
/UseVsixExtensions 이 옵션을 사용하면 vstest.console.exe 프로세스에서 테스트 실행에 설치된 VSIX 확장을 사용하거나 건너뜁니다(있는 경우).
이 옵션은 더 이상 사용되지 않습니다. Visual Studio의 다음 주요 릴리스부터 이 옵션은 제거될 수 있습니다. NuGet 패키지로 사용할 수 있는 확장 사용으로 이동합니다.
예: /UseVsixExtensions:true
/TestAdapterPath:[경로] vstest.console.exe 프로세스에서 테스트 실행의 지정된 경로(있는 경우)에서 사용자 지정 테스트 어댑터를 사용하도록 합니다.
예: /TestAdapterPath:[pathToCustomAdapters]
/Platform:[플랫폼 유형] 현재 런타임에서 결정된 플랫폼 대신 지정된 플랫폼을 강제로 사용합니다. 이 옵션은 Windows에서 x86 및 x64 플랫폼만 강제 적용할 수 있습니다. ARM 옵션이 손상되어 대부분의 시스템에서 x64가 발생합니다.
ARM64와 같은 유효한 값 목록에 없는 런타임에서 실행하려면 이 옵션을 지정하지 마세요.
유효한 값은 x86, x64 및 ARM입니다.
/Framework: [Framework 버전] 테스트 실행에 사용할 대상 .NET 버전입니다.
예제 값은 Framework35, Framework40, Framework45, FrameworkUap10, .NETCoreApp,Version=v1.1.
TargetFrameworkAttribute는 어셈블리에서 이 옵션을 자동으로 검색하는 데 사용되며 특성이 없는 경우 기본적으로 Framework40. .NET Core 어셈블리에서 TargetFrameworkAttribute 제거하는 경우 이 옵션을 명시적으로 지정해야 합니다.
대상 프레임워크가 Framework35지정된 경우 테스트는 CLR 4.0 "호환 모드"에서 실행됩니다.
예: /Framework:framework40
/TestCaseFilter:[] 지정된 식과 일치하는 테스트를 실행합니다.
<식> [|<식>]><속성>=<값 형식입니다.
예: /TestCaseFilter:"Priority=1"
예: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName"
/TestCaseFilter 명령줄 옵션은 /Tests 명령줄 옵션과 함께 사용할 수 없습니다.
식을 만들고 사용하는 방법에 대한 자세한 내용은 TestCase 필터참조하세요.
/? 사용 정보를 표시합니다.
/Logger:[uri/friendlyname] 테스트 결과에 대한 로거를 지정합니다. 여러 로거를 사용하도록 설정하려면 매개 변수를 여러 번 지정합니다.
예: 결과를 Visual Studio TRX(테스트 결과 파일)에 기록하려면
/Logger:trx
[; LogFileName=<기본값은 고유한 파일 이름>]
/ListTests:[파일 이름] 지정된 테스트 컨테이너에서 검색된 테스트를 나열합니다.
참고: /TestCaseFilters 옵션은 테스트를 나열할 때 영향을 주지 않습니다. 실행되는 테스트만 제어합니다.
/ListDiscoverers 설치된 테스트 검색기를 나열합니다.
/ListExecutors 설치된 테스트 실행기를 나열합니다.
/ListLoggers 설치된 테스트 로거를 나열합니다.
/ListSettingsProviders 설치된 테스트 설정 공급자를 나열합니다.
/비난 비난 모드에서 테스트를 실행합니다. 이 옵션은 테스트 호스트가 충돌하는 문제가 있는 테스트를 격리하는 데 유용합니다. 크래시가 감지되면 크래시 전에 실행된 테스트 순서를 캡처하는 시퀀스 파일을 TestResults/<Guid>/<Guid>_Sequence.xml 만듭니다. 자세한 내용은 데이터 수집기참조하세요.
/Diag:[파일 이름] 진단 추적 로그를 지정된 파일에 씁니다.
/ResultsDirectory:[ 경로] 테스트 결과 디렉터리가 없는 경우 지정된 경로에 만들어집니다.
예: /ResultsDirectory:<pathToResultsDirectory>
/ParentProcessId:[parentProcessId] 현재 프로세스를 시작하는 부모 프로세스의 프로세스 ID입니다.
/Port:[포트] 소켓 연결 및 이벤트 메시지 수신을 위한 포트입니다.
/Collect:[dataCollector friendlyName] 테스트 실행에 대해 데이터 수집기를 사용하도록 설정합니다. 추가 정보.

옵션 및 값은 대/소문자를 구분하지 않습니다.

예제

vstest.console.exe 실행하기 위한 구문은 다음과 같습니다.

vstest.console.exe [TestFileNames] [Options]

기본적으로 이 명령은 테스트가 검색되지 않더라도 정상적으로 종료될 때 0을 반환합니다. 테스트가 검색되지 않은 경우 0이 아닌 값을 반환하려면 <TreatNoTestsAsError>true</TreatNoTestsAsError> runsettings 옵션을 사용합니다.

다음 명령은 테스트 라이브러리 myTestProject.dll대한 vstest.console.exe 실행합니다.

vstest.console.exe myTestProject.dll

다음 명령은 여러 테스트 파일을 사용하여 vstest.console.exe 실행합니다. 테스트 파일 이름을 공백으로 구분합니다.

vstest.console.exe myTestFile.dll myOtherTestFile.dll

다음 명령은 몇 가지 옵션을 사용하여 vstest.console.exe 실행합니다. 격리된 프로세스의 myTestFile.dll 파일에서 테스트를 실행하고 Local.RunSettings 파일에 지정된 설정을 사용합니다. 또한 "Priority=1"로 표시된 테스트만 실행하고 결과를 .trx 파일에 기록합니다.

vstest.console.exe myTestFile.dll /Settings:Local.RunSettings /InIsolation /TestCaseFilter:"Priority=1" /Logger:trx

다음 명령은 테스트 라이브러리 myTestProject.dll대한 /blame 옵션을 사용하여 vstest.console.exe 실행합니다.

vstest.console.exe myTestFile.dll /blame

테스트 호스트 크래시가 발생하면 sequence.xml 파일이 생성됩니다. 이 파일에는 충돌 시 실행 중이던 특정 테스트를 포함하여 실행 시퀀스에서 테스트의 정규화된 이름이 포함됩니다.

테스트 호스트 크래시가 없으면 sequence.xml 파일이 생성되지 않습니다.

생성된 sequence.xml 파일의 예:

<?xml version="1.0"?>
<TestSequence>
  <Test Name="TestProject.UnitTest1.TestMethodB" Source="D:\repos\TestProject\TestProject\bin\Debug\TestProject.dll" />
  <Test Name="TestProject.UnitTest1.TestMethodA" Source="D:\repos\TestProject\TestProject\bin\Debug\TestProject.dll" />
</TestSequence>

UWP 예제

UWP의 경우 appxrecipe 파일을 DLL 대신 참조해야 합니다.

vstest.console.exe /Logger:trx /Platform:x64 /framework:frameworkuap10 UnitTestsUWP\bin\x64\Release\UnitTestsUWP.build.appxrecipe