Share via


MSTest.exe 명령줄 옵션

MSTest.exe는 테스트를 실행하는 데 사용되는 명령줄 명령입니다. 이 명령에는 테스트 실행을 사용자 지정하는 데 사용할 수 있는 여러 옵션이 있습니다. 이러한 옵션 중 상당수는 다른 옵션과 함께 사용할 수 있습니다. 그중에는 아래에서 설명하는 것처럼 반드시 다른 옵션과 함께 사용해야 하는 것도 있습니다. MSTest.exe 명령줄에서 순서에 상관없이 이러한 옵션을 지정할 수 있습니다.

MSTest.exe에서는 옵션이나 옵션 값에 대해 대/소문자를 구분하지 않습니다.

다음 표에서는 MSTest.exe에 대한 모든 옵션을 나열하고 해당 옵션에 대한 간단한 설명을 보여 줍니다. 명령줄에서 MSTest /h를 입력하면 비슷한 요약을 볼 수 있습니다.

일반 명령줄 옵션

/testcontainer:[file name]

테스트가 포함된 파일을 로드합니다.

예를 들면 /testcontainer:tests.dll와 같은 형식입니다.

자세한 내용은 /testcontainer를 참조하십시오.

/testmetadata:[file name]

테스트 메타데이터가 포함된 파일을 로드합니다. 자세한 내용은 /testmetadata를 참조하십시오.

/testlist:[test list path]

메타데이터 파일에서 지정하는 것처럼 실행할 테스트 목록을 지정합니다. 자세한 내용은 /testlist를 참조하십시오.

/category:[test category filter]

실행할 테스트 범주를 지정하고 필터링합니다. 자세한 내용은 /category를 참조하십시오.

/test:[test name]

실행할 테스트의 이름을 지정합니다. 자세한 내용은 /test를 참조하십시오.

/noisolation

MSTest.exe 프로세스 내에서 테스트를 실행합니다. 이 항목을 선택하면 테스트 실행 속도는 빨라지지만 MSTest.exe 프로세스에 대한 위험은 높아집니다.

/testsettings: [file name]

지정한 테스트 설정 파일을 사용합니다.

예를 들면 /testsettings:Local.Testsettings와 같은 형식입니다.

자세한 내용은 /testsettings를 참조하십시오.

/runconfig:[file name]

지정된 실행 구성 파일을 사용합니다.

예를 들면 /runconfig:localtestrun.Testrunconfig와 같은 형식입니다.

자세한 내용은 /runconfig를 참조하십시오.

참고참고
이 명령줄 옵션은 Microsoft Visual Studio 2010의 이전 버전과 호환성을 유지할 목적으로 제공됩니다.테스트 실행 구성은 Visual Studio 2010 Ultimate에서 테스트 설정으로 대체되었습니다.

/resultsfile:[file name]

테스트 실행 결과를 지정된 파일에 저장합니다.

예를 들면 /resultsfile:testResults.trx와 같은 형식입니다.

자세한 내용은 /resultsfile을 참조하십시오.

/unique

지정된 /test와 일치하는 테스트가 하나뿐인 경우에만 테스트를 실행합니다. 자세한 내용은 /unique를 참조하십시오.

/detail:[property id]

테스트 결과(해당하는 경우)와 함께 값을 표시하려는 속성의 이름을 지정합니다. 자세한 내용은 /detail을 참조하십시오.

/help

MSTest.exe 사용법 메시지(약식: /? 또는 /h)를 표시합니다.

/nologo

시작 배너 및 저작권 메시지를 표시하지 않습니다.

/usestderr

표준 오류를 사용하여 오류 정보를 출력합니다.

테스트 결과 게시를 위한 명령줄 옵션

이러한 옵션에 대한 자세한 내용은 테스트 결과 게시를 위한 명령줄 옵션을 참조하십시오.

/publish:[server name]

지정된 서버의 팀 프로젝트 컬렉션 데이터베이스에 결과를 게시합니다.

/publishresultsfile:[file name]

게시할 결과 파일 이름을 지정합니다. 결과 파일 이름을 지정하지 않을 경우 현재 실행에서 만들어진 파일을 사용합니다.

/publishbuild:[build id]

이 빌드 ID를 사용하여 테스트 결과를 게시합니다.

/teamproject:[team project name]

해당 빌드가 속한 팀 프로젝트의 이름을 지정합니다.

/platform:[platform]

테스트 결과를 게시할 빌드의 플랫폼을 지정합니다.

/flavor:[특성(flavor)]

테스트 결과를 게시할 빌드 버전을 지정합니다.

MSTest 옵션 사용

다음 단원에서는 MSTest.exe의 여러 옵션에 대해 자세히 설명합니다. 테스트 결과를 게시하는 데 사용되는 옵션은 여기서 다루지 않습니다. 해당 옵션에 대한 자세한 내용은 테스트 결과 게시를 위한 명령줄 옵션을 참조하십시오.

/testcontainer

/testcontainer:[file name]

테스트 컨테이너는 실행하려는 테스트가 포함된 파일입니다. 예를 들어, 순서가 지정된 테스트의 경우 테스트 컨테이너는 순서가 지정된 테스트를 정의하는 .orderedtest 파일이고, 단위 테스트의 경우 테스트 컨테이너는 단위 테스트 소스 파일을 포함하는 테스트 프로젝트에서 빌드된 어셈블리입니다.

참고

단위 테스트에서 테스트 컨테이너는 테스트할 응용 프로그램의 코드를 포함하는 어셈블리가 아니라 테스트 코드를 포함하는 어셈블리입니다. 예를 들어, 솔루션에 BankAccount라는 프로젝트와 BankAccountTest라는 해당 테스트 프로젝트가 포함되어 있는 경우 /testcontainer:BankAccountTest.dll을 지정합니다.

참고

또한 테스트 메타데이터 파일에는 실행 가능한 테스트가 나열되어 있으므로 단일 명령줄에서 /testcontainer/testmetadata 옵션을 모두 지정해서는 안 됩니다. 이렇게 하면 의미가 모호하게 되어 오류가 발생합니다.

/testmetadata

/testmetadata:[file name]

/testmetadata 옵션을 사용하여 여러 테스트 컨테이너에서 테스트를 실행할 수 있습니다.

테스트 메타데이터 파일은 테스트 목록 편집기 창을 사용하여 테스트 목록을 만들 때 솔루션에 대해 만들어집니다. 이 파일에는 테스트 목록 편집기 창에 나열된 모든 테스트에 대한 정보가 포함되어 있습니다. 이러한 테스트는 솔루션의 모든 테스트 프로젝트에 있는 모든 테스트입니다.

테스트 메타데이터 파일은 솔루션 폴더에 만들어지는 XML 파일입니다. 이 파일은 솔루션 탐색기에서 솔루션 항목 노드 아래에 표시됩니다. 테스트 메타데이터 파일의 확장명은 .vsmdi이며 이 파일은 테스트 목록 편집기 창에 연결됩니다. 즉, Windows 탐색기에서 .vsmdi 파일을 두 번 클릭하면 Visual Studio가 열리고 파일의 내용이 표시됩니다. 솔루션 테스트 프로젝트의 모든 테스트가 테스트 목록 편집기 창에 표시됩니다.

테스트 만들기 또는 삭제, 테스트 속성 변경 등과 같이 테스트 목록 편집기 창에 반영되는 변경을 통해서만 테스트 메타데이터 파일을 변경할 수 있습니다.

참고

테스트 컨테이너에는 실행 가능한 테스트가 포함되어 있으므로 단일 명령줄에서 /testcontainer/testmetadata 옵션을 모두 지정해서는 안 됩니다. 이렇게 하면 의미가 모호하게 되어 오류가 발생합니다.

/testmetadata 옵션을 사용할 경우 /test 옵션이나 /testlist 옵션 중 하나 또는 둘 모두를 사용하여 실행할 특정 테스트를 표시하는 것이 좋습니다.

/testlist

/testlist:[test list path]

/testlist 옵션은 테스트 메타데이터 파일에서 지정한 것처럼 실행할 테스트 목록입니다. 여러 테스트 목록에 포함된 테스트를 실행하려면 /testlist 옵션을 여러 번 사용합니다. 그러면 테스트 목록의 테스트가 순서대로 실행됩니다.

참고

/testlist 옵션은 /testmetadata 옵션을 사용하는 경우에만 사용할 수 있습니다.

/testlist 옵션과 /test 옵션을 함께 사용할 수 있습니다. 이는 테스트 목록 편집기 창에서 테스트 목록과 하나 이상의 개별 테스트를 선택한 다음 테스트 실행을 클릭하는 것과 같습니다.

/category

/category:[test category filter]

/category 옵션을 사용하여 어떤 테스트 범주를 실행할지 지정할 수 있습니다.

참고

/category 옵션을 사용하려면 /testcontainer 옵션을 함께 사용해야 합니다.

명령줄에서 /category 옵션을 한 번만 사용할 수도 있지만 테스트 범주 필터를 사용하여 테스트 범주 여러 개를 지정할 수도 있습니다. 테스트 범주 필터는 하나 이상의 테스트 범주 이름으로 구성되며 각 이름을 구분하는 데는 '&', '|', '!', '&!' 등의 논리 연산자가 사용됩니다. 테스트 범주 필터를 만드는 데 '&' 및 '|' 논리 연산자를 함께 사용할 수 없습니다.

예를 들면 다음과 같습니다.

  • /category:group1을 사용하면 "group1" 테스트 범주의 테스트가 실행됩니다.

  • **/category:"group1&group2"**를 사용하면 "group1" 및 "group2" 테스트 범주에 모두 포함된 테스트가 실행됩니다. 지정한 테스트 범주 중 하나에만 포함된 테스트는 실행되지 않습니다.

  • **/category:"group1|group2"**를 사용하면 "group1" 또는 "group2" 테스트 범주에 포함된 테스트가 실행됩니다. 두 테스트 범주에 모두 포함된 테스트도 실행됩니다.

  • **/category:"group1&!group2"**를 사용하면 "group1" 테스트 범주에 포함되어 있고 "group2" 테스트 범주에 포함되어 있지 않은 테스트가 실행됩니다. "group1" 및 "group2" 테스트 범주에 모두 포함된 테스트는 실행되지 않습니다.

    참고

    필터가 /category:group1의 예에서와 같이 단일 범주로 이루어진 경우 필터를 따옴표로 묶지 않아도 됩니다. 그러나 /category:"group1&group2"의 예에서와 같이 필터가 여러 범주를 참조하는 경우 필터를 따옴표로 묶어야 합니다.

/test

/test:[test name]

/test 옵션을 사용하여 실행할 개별 테스트를 지정합니다. 여러 테스트를 실행하려면 /test 옵션을 여러 번 사용합니다.

참고

/test 옵션을 /testcontainer 옵션 또는 /testmetadata 옵션과 함께 사용할 수 있지만 두 옵션 모두와 함께 사용할 수는 없습니다.

/testlist 옵션과 /test 옵션을 함께 사용할 수 있습니다. 이는 테스트 목록 편집기 창에서 테스트 목록과 하나 이상의 개별 테스트를 선택한 다음 테스트 실행을 클릭하는 것과 같습니다.

/test 옵션을 사용하여 지정한 문자열은 테스트 컨테이너 또는 테스트 메타데이터 파일에서 일치하는 테스트 이름을 찾는 데 사용됩니다. 즉, /test에 단일 값을 사용하여 여러 테스트를 지정할 수 있습니다. 예를 들어, /test:ittest를 지정하면 테스트 이름에 부분 문자열 'ittest'가 포함되어 있는 DebitTest 및 CreditTest라는 두 개의 일치 항목이 생성됩니다.

참고

/test 옵션을 사용하여 지정한 값은 솔루션 탐색기에 표시된 테스트 이름뿐만 아니라 해당 테스트의 경로에 대해서도 테스트되고, 단위 테스트의 경우 정규화된 이름에 대해서 테스트됩니다.

다음은 두 사용법의 예입니다.

단위 테스트의 예: TestProject2 프로젝트의 UnitTest1.cs 파일에는 TestMethod1이라는 단위 테스트가 포함되어 있습니다. /test 옵션 값으로 'ittest'를 지정하면 정규화된 이름 "TestProject2.UnitTest1.TestMethod1"에 대해 해당 문자열이 테스트되므로 이 테스트가 일치 항목이 되고 'ittest' 문자열이 'UnitTest1'에 표시됩니다.

제네릭 테스트의 예: 다음 명령줄은 지정된 제네릭 테스트를 실행하고 테스트의 전체 경로를 테스트 결과에 표시합니다.

mstest /testcontainer:"C:\Documents and Settings\<user name>\My Documents\Visual Studio\Projects\TestProject2\TestProject2\generictest1.generic" /test:testproject32\generic

/noisolation

/noisolation

MSTest.exe 프로세스 내에서 테스트를 실행하려면 이 옵션을 사용합니다. 이 옵션을 사용해도 테스트 실행 구성의 다른 항목은 변경되지 않습니다. 이 옵션은 테스트 실행 속도를 높이기 위한 것입니다. 그러나 이 옵션을 선택하면 테스트 코드에서 throw되는 처리되지 않는 예외로 인해 MSTest.exe 프로세스가 충돌하기 때문에 전체적으로 테스트 실행에 대한 위험이 높아집니다.

/testsettings

/testsettings:[file name]

이 옵션을 사용하여 테스트 설정 파일을 지정할 수 있습니다. 예를 들면 /testsettings:local.Testsettings 같은 형식입니다.

/testmetadata 옵션을 사용하는 등 다른 방법으로 테스트 설정 파일을 지정할 수도 있습니다. 여기서는 테스트 설정 파일의 사양을 제어하는 규칙에 대해 설명합니다.

  • /testsettings 옵션을 사용하는 경우 이 옵션으로 지정한 파일이 /testmetadata 옵션의 사용 여부에 관계없이 사용됩니다.

  • /testmetadata 옵션을 사용하여 활성 테스트 설정 파일을 지정하는 메타데이터 파일을 가리키는 경우 /testsettings 옵션을 사용하지 않으면 해당 테스트 설정 파일이 사용됩니다.

  • /testsettings 옵션을 사용하지 않고 테스트 메타데이터 파일에서 테스트 설정 파일을 지정하지도 않을 경우 테스트 실행에 기본 테스트 설정 파일이 사용됩니다.

    참고

    테스트 설정 파일에 대한 자세한 내용은 테스트 계획의 일부로 자동화된 테스트에 대한 테스트 설정 만들기를 참조하십시오.

/runconfig

/runconfig:[file name]

참고 이 명령줄 옵션은 Microsoft Visual Studio 2010의 이전 버전과 호환성을 유지할 목적으로 제공됩니다. 테스트 실행 구성은 Visual Studio 2010 Ultimate에서 테스트 설정으로 대체되었습니다.

이 옵션을 사용하여 실행 구성 파일을 지정합니다. 예를 들면 /runconfig:localtestrun.Testrunconfig 같은 형식입니다.

/testmetadata 옵션 등의 다른 방법으로 실행 구성 파일을 지정할 수도 있습니다. 여기에서는 실행 구성 파일의 사양을 제어하는 규칙에 대해 설명합니다.

  • /runconfig 옵션을 사용하는 경우 이 옵션으로 지정한 파일이 /testmetadata 옵션의 사용 여부에 관계없이 사용됩니다.

  • /testmetadata 옵션을 사용하여 활성 실행 구성 파일을 지정하는 메타데이터 파일을 가리키는 경우 /runconfig 옵션을 사용하지 않으면 해당 실행 구성 파일이 사용됩니다.

  • /runconfig 옵션을 사용하지 않고 테스트 메타데이터 파일에서 실행 구성 파일을 지정하지 않을 경우 테스트 실행에서는 기본 실행 구성 파일을 사용합니다.

/resultsfile

/resultsfile:[file name]

이 옵션을 사용하여 테스트 실행 결과를 명명된 파일에 저장합니다. 예를 들면 /resultsfile:testResults.trx 같은 형식입니다.

/unique

/unique

/unique 옵션을 /test 옵션과 함께 사용합니다. /unique 옵션을 사용하면 /test 옵션으로 지정한 값과 고유하게 일치하는 경우에만 MSTest.exe를 통해 테스트가 실행됩니다.

예를 들어, 테스트 컨테이너 MyTestProject에 MethodTest1이라는 테스트와 MethodTest10이라는 테스트가 포함되어 있습니다.

다음 명령줄

mstest /testcontainer:testproject2.dll /test:MethodTest1

에서는 'MethodTest1' 테스트와 이 테스트의 부분 문자열인 'MethodTest10' 테스트를 모두 실행합니다.

그러나 다음 명령줄

mstest /testcontainer:testproject2.dll /test:MethodTest1 /unique

에서는 이 테스트 이름이 고유하게 일치하지 않으면 오류가 발생합니다. 테스트의 속성 뷰에 표시된 테스트 ID를 사용하여 테스트 이름을 고유하게 식별할 수 있습니다.

/usestderr

/usestderr

이 옵션을 사용하면 다음 정보가 표준 오류로 작성됩니다.

  • 결과가 실패, 중단됨, 시간 초과, 실행할 수 없음 또는 실행되지 않음인 테스트

  • 실행 수준 오류

  • 명령줄 인수의 구문 분석 오류

  • 테스트 실행에 실패한 결과가 있을 때 요약 실행

이 옵션을 사용하지 않으면 모든 출력이 표준 출력으로 전송됩니다.

/detail

/detail:[property id]

이 옵션은 추가 테스트 사례 속성(있는 경우)을 표시하는 데 사용됩니다. 단일 명령줄에서 속성 ID를 각각 한 개씩만 사용하여 /detail 옵션의 인스턴스 여러 개를 전달할 수 있습니다. /detail 옵션에 유효한 속성 ID는 다음과 같습니다.

adapter

id

projectrelativepath

computername

isautomated

readonly

debugtrace

link

spoolmessage

description

longtext

stderr

displaytext

name

stdout

duration

outcometext

storage

errormessage

owner

testcategoryid

errorstacktrace

parentexecid

testname

executionid

priority

testtype

groups

projectname

traceinfo

참고

/detail 옵션과 함께 사용할 수 있다 하더라도 해당 속성 ID를 실제로 선택할 수 있는지 여부는 테스트 형식에 따라 달라집니다. 즉 이 목록은 추정된 내용입니다. 특히 사용자 지정 테스트 형식을 사용할 경우 속성 선택 항목이 달라집니다. 사용 가능한 속성 ID를 확인하려면 테스트 실행에서 생성되는 테스트 결과 파일을 검사합니다. 테스트 결과 파일에 대한 자세한 내용은 방법: Visual Studio에서 테스트 결과 저장 및 열기를 참조하십시오.

지정된 테스트 사례에 대한 속성이 있는 경우 해당 정보가 출력 결과 요약에 포함됩니다.

예를 들어, 다음 명령줄

mstest /testcontainer:Errors.dll /detail:testtype

에서는 테스트 종류 정보를 포함하는 다음과 같은 출력을 생성합니다.

...
Results                    Top Level Tests
--------                   -----------------
Inconclusive               TestProject2.BankAccountTest.CreditTest
[testtype] = Unit Test
...

참고 항목

개념

테스트 결과 검토

명령줄에서 자동화된 테스트 실행