.runsettings 파일을 사용하여 단위 테스트 구성Configure unit tests by using a .runsettings file

*.runsettings 파일을 사용하여 Visual Studio의 단위 테스트를 구성할 수 있습니다.Unit tests in Visual Studio can be configured by using a *.runsettings file. 확장명으로 ‘.runsettings’를 사용하면 파일 이름은 아무런 상관이 없습니다. 예를 들어, 테스트가 실행되는 .NET Framework, 테스트 결과가 전달되는 디렉터리 및 테스트 실행 중에 수집된 데이터를 변경할 수 있습니다.(The file name doesn't matter, provided you use the extension '.runsettings.') For example, you can change the .NET Framework on which the tests will be run, the directory where test results are delivered, and the data collected during a test run.

특별히 구성하지 않는다면 *.runsettings 파일이 필요하지 않습니다.If you don't want to do any special configuration, you don't need a *.runsettings file. 가장 자주 사용하는 경우는 코드 검사를 사용자 지정하는 경우입니다.The most frequent use is to customize Code Coverage.

참고

.runsettings 및 .testsettings.runsettings and .testsettings

테스트 구성에는 두 가지 파일 형식이 필요합니다.There are two types of file for configuring tests. *.runsettings는 단위 테스트에 사용됩니다.*.runsettings are used for unit tests. *.testsettings는 랩 환경 테스트, 웹 성능 및 로드 테스트 그리고 Intellitrace 및 이벤트 로그 어댑터와 같은 진단 데이터 어댑터의 일부 유형을 사용자 지정하는 데 사용됩니다.And *.testsettings for lab environment tests, web performance and load tests, and for customizing some types of diagnostic data adapters such as Intellitrace and event log adapters.

Visual Studio 2010까지 Visual Studio의 이전 버전에서는 *.testsettings 파일을 사용해서 단위 테스트를 사용자 지정할 수 있었습니다.In previous editions of Visual Studio up to 2010, unit tests were also customized by using *.testsettings files. 여전히 *.testsettings 파일을 사용해서 단위 테스트를 사용자 지정할 수도 있지만 *.runsettings 파일에서 동일한 구성을 사용하는 것보다 테스트가 훨씬 느리게 실행됩니다.You can still do that, but the tests will run more slowly than if you use the equivalent configurations in a *.runsettings file.

.runsettings 파일을 사용하여 테스트 사용자 지정Customizing tests with a .runsettings file

  1. XML 파일을 Visual Studio 솔루션에 추가하고 이름을 test.runsettings로 바꿉니다.Add an XML file to your Visual Studio solution and rename it to test.runsettings. 파일 이름은 아무런 상관이 없지만 확장명은 .runsettings를 사용해야 합니다.(The filename doesn't matter, but the extension must be .runsettings.)

  2. 파일 콘텐츠를 예제로 바꿉니다.Replace the file content with the example.

    각자의 요구에 따라 편집합니다.Edit it to your own needs.

  3. 테스트 메뉴에서 테스트 설정, 테스트 설정 파일 선택을 차례로 선택합니다.On the Test menu, choose Test Settings, Select Test Settings File.

    솔루션에 *.runsettings 파일을 두 개 이상 만들고 테스트 설정 메뉴를 사용하여 다른 시간에 사용하거나 사용하지 않도록 설정할 수 있습니다.You can create more than one *.runsettings file in your solution, and enable or disable them at different times by using the Test Settings menu.

    실행 설정 파일 사용Enabling a run settings file

이 예제의 .runsettings 파일 복사Copy this example .runsettings file

다음은 일반적인 *.runsettings 파일입니다.Here is a typical *.runsettings file. 모든 값에는 기본값이 있으므로 파일의 각 요소는 선택 사항입니다.Each element of the file is optional, because every value has a default.

<?xml version="1.0" encoding="utf-8"?>  
<RunSettings>  
  <!-- Configurations that affect the Test Framework -->  
  <RunConfiguration>  
    <MaxCpuCount>1</MaxCpuCount>  
    <!-- Path relative to solution directory -->  
    <ResultsDirectory>.\TestResults</ResultsDirectory>  

    <!-- [x86] | x64    
      - You can also change it from menu Test, Test Settings, Default Processor Architecture -->  
    <TargetPlatform>x86</TargetPlatform>  

    <!-- Framework35 | [Framework40] | Framework45 -->  
    <TargetFrameworkVersion>Framework40</TargetFrameworkVersion>  

    <!-- Path to Test Adapters -->  
    <TestAdaptersPaths>%SystemDrive%\Temp\foo;%SystemDrive%\Temp\bar</TestAdaptersPaths>  
  </RunConfiguration>  

  <!-- Configurations for data collectors -->  
  <DataCollectionRunSettings>  
    <DataCollectors>  
      <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">  
        <Configuration>  
          <CodeCoverage>  
            <ModulePaths>  
              <Exclude>  
                <ModulePath>.*CPPUnitTestFramework.*</ModulePath>  
              </Exclude>  
            </ModulePaths>  

            <!-- We recommend you do not change the following values: -->  
            <UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>  
            <AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>  
            <CollectFromChildProcesses>True</CollectFromChildProcesses>  
            <CollectAspDotNet>False</CollectAspDotNet>  

          </CodeCoverage>  
        </Configuration>  
      </DataCollector>  

    </DataCollectors>  
  </DataCollectionRunSettings>  

  <!-- Parameters used by tests at runtime -->  
  <TestRunParameters>  
    <Parameter name="webAppUrl" value="http://localhost" />  
    <Parameter name="webAppUserName" value="Admin" />  
    <Parameter name="webAppPassword" value="Password" />  
  </TestRunParameters>  

  <!-- Adapter Specific sections -->  

  <!-- MSTest adapter -->  
  <MSTest>  
    <MapInconclusiveToFailed>True</MapInconclusiveToFailed>  
    <CaptureTraceOutput>false</CaptureTraceOutput>  
    <DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>  
    <DeploymentEnabled>False</DeploymentEnabled>  
    <AssemblyResolution>  
      <Directory Path="D:\myfolder\bin\" includeSubDirectories="false"/>  
    </AssemblyResolution>  
  </MSTest>  

</RunSettings>  

.runsettings 파일도 코드 검사를 구성하는 데 사용됩니다.The .runsettings file is also used to configure Code Coverage.

이 항목의 나머지 부분은 파일 콘텐츠에 대해 설명합니다.The remainder of this topic describes the file content.

.runsettings 파일을 편집합니다.Edit your .runsettings file

.runsettings 파일에는 다음과 같은 요소가 있습니다.The .runsettings file has the following elements.

테스트 실행 구성Test run configuration

노드Node 기본Default Values
ResultsDirectory 테스트 결과가 배치될 디렉터리입니다.The directory where test results will be placed.
TargetFrameworkVersion Framework40Framework40 Framework35, Framework40, Framework45Framework35, Framework40, Framework45

테스트를 검색하고 실행하는 데 사용할 단위 테스트 프레임워크의 버전을 지정합니다.This specifies which version of the unit test framework is used to discover and execute the tests. 이 버전은 단위 테스트 프로젝트의 빌드 속성에 지정하는 .NET 플랫폼의 버전과 다를 수 있습니다.It can be different from the version of the .NET platform that you specify in the build properties of the unit test project.
TargetPlatform x86x86 x86, x64x86, x64
TreatTestAdapterErrorsAsWarnings falsefalse false, truefalse, true
TestAdaptersPaths TestAdapters가 있는 디렉터리에 대한 하나 또는 여러 경로One or multiple paths to the directory where the TestAdapters are located
MaxCpuCount 11 단위 테스트를 실행하는 경우 시스템에서 사용 가능한 코어를 사용하여 병렬 테스트 실행의 정도를 제어합니다.This controls the degree of parallel test execution when running unit tests, using available cores on the machine. 테스트 실행 엔진이 사용 가능한 각 코어에서 별도의 프로세스로 시작되며, 실행할 테스트가 있는 컨테이너(예: 어셈블리, DLL 또는 관련 아티팩트)를 각 코어에 제공합니다.The test execution engine starts as a distinct process on each available core and gives each core a container with tests to run, like an assembly, DLL, or relevant artifact. 테스트 컨테이너는 예약 단위입니다.The test container is the scheduling unit. 각 컨테이너에서 테스트는 테스트 프레임워크에 따라 실행됩니다.In each container, the tests are run according to the test framework. 많은 컨테이너가 있는 경우 프로세스가 컨테이너 내의 테스트 실행을 마치면 사용 가능한 다음 컨테이너가 제공됩니다.If there are many containers, then as processes finish executing the tests in a container, they are given the next available container.

MaxCpuCount는 다음과 같을 수 있습니다.MaxCpuCount can be:

n, 여기서 1 < = n < = 코어 수에 해당하며 최대 n개의 프로세스가 시작됩니다.n, where 1 <= n <= number of cores: up to n processes will be launched

n, 여기서 n = 다른 모든 값이 되며, 시작되는 프로세스의 수는 컴퓨터에서 사용 가능한 코어 수까지입니다.n, where n = any other value: the number of processes launched will be up to as many as available cores on the machine

진단 데이터 어댑터(데이터 수집기)Diagnostic Data Adapters (Data Collectors)

DataCollectors 요소는 진단 데이터 어댑터의 설정을 지정합니다.The DataCollectors element specifies settings of diagnostic data adapters. 진단 데이터 어댑터는 테스트 환경 및 응용 프로그램에 대한 추가 정보를 수집하는 데 사용합니다.Diagnostic data adapters are used to gather additional information about the environment and the application under test. 각 어댑터에는 기본 설정이 있으며 기본 설정을 사용하지 않으려는 경우에만 설정을 제공해야 합니다.Each adapter has default settings, and you only have to provide settings if you don't want to use the defaults.

코드 검사 어댑터Code coverage adapter

코드 검사 데이터 수집기는 테스트에서 응용 프로그램 코드 중 실행된 부분에 대한 로그를 만듭니다.The code coverage data collector creates a log of which parts of the application code have been exercised in the test. 코드 검사의 설정을 사용자 지정하는 방법에 대한 자세한 내용은 코드 검사 분석 사용자 지정을 참조하세요.For more information about customizing the settings for code coverage, see Customizing Code Coverage Analysis.

기타 진단 데이터 어댑터Other diagnostic data adapters

코드 검사 어댑터는 현재 실행 설정 파일을 사용하여 사용자 지정할 수 있는 유일한 어댑터입니다.The code coverage adapter is currently the only adapter that can be customized by using the run settings file.

다른 종류의 진단 데이터 어댑터를 사용자 지정하려면 테스트 설정 파일을 사용해야 합니다.To customize any other type of diagnostic data adapter, you must use a test settings file. 자세한 내용은 Visual Studio 테스트에 대한 테스트 설정 지정을 참조하세요.For more information, see Specifying Test Settings for Visual Studio Tests.

TestRunParametersTestRunParameters

TestRunParameters는 런타임에 테스트에서 사용할 수 있는 변수 및 값을 정의하는 방법을 제공합니다.TestRunParameters provides a way to define variables and values that are available to the tests at runtime.

MSTest 실행 설정MSTest Run Settings

이러한 설정은 [TestMethod] 특성을 가진 테스트 메서드를 실행하는 테스트 어댑터에 따라 달라집니다.These settings are specific to the test adapter that runs test methods that have the [TestMethod] attribute.

구성Configuration 기본Default Values
ForcedLegacyModeForcedLegacyMode falsefalse Visual Studio 2012에서 MSTest 어댑터는 더욱 빠르고 확장성 가능하도록 최적화되었습니다.In Visual Studio 2012, the MSTest adapter has been optimized to make it faster and more scalable. 테스트가 실행되는 순서와 같은 일부 동작은 이전 버전 Visual Studio처럼 정확하지 않을 수 있습니다.Some behavior, such as the order in which tests are run, might not be exactly as it was in previous editions of Visual Studio. 이전 테스트 어댑터를 사용하려면 이 값을 true 로 설정합니다.Set this value true to use the older test adapter.

예를 들어, 단위 테스트에 대해 app.config 파일을 지정한 경우 이전 테스트 어댑터를 사용할 수 있습니다.For example, you might use this if you have an app.config file specified for a unit test.

새 어댑터를 사용할 수 있도록 테스트를 리팩터링하는 것이 좋습니다.We recommend that you consider refactoring your tests to allow you to use the newer adapter.
IgnoreTestImpactIgnoreTestImpact falsefalse 테스트 영향 기능은 MSTest 또는 Microsoft Test Manager에서 실행할 때 최근 변경 내용의 영향을 받는 테스트의 우선 순위를 지정합니다.The test impact feature prioritizes tests that are affected by recent changes, when run in MSTest or from Microsoft Test Manager. 이 설정에서는 이 기능이 비활성화됩니다.This setting deactivates the feature. 자세한 내용은 방법: 코드 변경 후 실행할 테스트를 확인하기 위해 데이터 수집을 참조하세요.For more information, see How to: Collect Data to Check Which Tests Should be Run After Code Changes.
SettingsFileSettingsFile 여기에서 MS 테스트 어댑터와 함께 사용할 테스트 설정 파일을 지정할 수 있습니다.You can specify a test settings file to use with the MS Test adapter here. 테스트, 테스트 설정, 테스트 설정 파일 선택메뉴를 사용하여 테스트 설정 파일을 지정할 수도 있습니다.You can also specify a test settings file using the menu Test, Test Settings, Select Test Settings File.

이 값을 지정하면 ForcedlegacyModetrue로 설정해야 합니다.If you specify this value, you must also set the ForcedlegacyMode to true.

<RunSettings> <MSTest> <SettingsFile>my.testsettings</SettingsFile> <ForcedLegacyMode>true</ForcedLegacyMode> </MSTest> </RunSettings>
KeepExecutorAliveAfterLegacyRunKeepExecutorAliveAfterLegacyRun falsefalse 테스트 실행이 완료되면 MSTest가 종료됩니다.After a test run is completed, MSTest is shut down. 테스트에 포함되어 시작된 프로세스도 이때 종료됩니다.Any process that is launched as part of the test will also be killed at this time. 테스트 Executor를 활성 상태로 유지하려면 이 구성을 true로 전환합니다.If you want to keep the test executor alive, turn this configuration to true.

예를 들어, 이 구성을 사용하여 브라우저가 코딩된 UI 테스트 사이에서 계속 실행되도록 할 수 있습니다.For example, you could use this to keep the browser running between coded UI tests.
DeploymentEnabledDeploymentEnabled truetrue 이 값을 false로 설정할 경우 테스트 메서드에서 지정한 배포 항목이 배포 디렉터리로 복사되지 않습니다.If you set this to false, deployment items that you have specified in your test method will not be copied to the deployment directory.
CaptureTraceOutputCaptureTraceOutput truetrue Trace.WriteLine을 사용하여 테스트 메서드에서 디버그 추적으로 쓸 수 있습니다.You can write to the debug trace from your Test method using Trace.WriteLine. 이 구성을 사용하여 이러한 디버그 추적을 해제할 수 있습니다.Using this configuration, you can turn off these debug traces.
DeleteDeploymentDirectoryAfterTestRunIsCompleteDeleteDeploymentDirectoryAfterTestRunIsComplete truetrue 이 값을 false로 설정하여 테스트를 실행한 후 배포 디렉터리를 유지할 수 있습니다.You can retain the Deployment Directory after a test run by setting this value to false.
MapInconclusiveToFailedMapInconclusiveToFailed falsefalse 테스트가 불충분한 상태로 반환되는 경우 일반적으로 테스트 탐색기에서 생략된 상태로 매핑됩니다.If a test returns with an inconclusive status, it is usually mapped to Skipped status in Test Explorer. 결과가 불충분한 테스트를 실패로 표시하려는 경우 이 구성을 사용합니다.If you want Inconclusive tests to be showed as Failed, use this configuration.
InProcModeInProcMode falsefalse 테스트를 MS 테스트 어댑터와 동일한 프로세스에서 실행하려면 이 값을 true로 설정합니다.If you want your tests to be run in the same process as the MS Test adapter, set this value to true. 이 설정을 사용하면 성능이 약간 향상됩니다.This setting provides a minor performance gain. 하지만 테스트가 종료될 때 예외가 발생하면 다른 테스트를 계속할 수 없습니다.But if a test exits with an exception, the other tests will not continue.
AssemblyResolutionAssemblyResolution falsefalse 단위 테스트를 찾아서 실행하는 경우 추가 어셈블리에 대한 경로를 지정할 수 있습니다.You can specify paths to additional assemblies when finding and running unit tests. 예를 들어 테스트 어셈블리와 동일한 디렉터리에 존재하지 않는 종속성 어셈블리에 대해 이러한 경로를 사용합니다.For example, use these paths for dependency assemblies that don't reside in the same directory as the test assembly. 경로를 지정하려면 "디렉터리 경로" 요소를 사용합니다.To specify a path, use a "Directory Path" element. 경로는 환경 변수를 포함할 수 있습니다.Paths can contain environment variables.

<AssemblyResolution> <Directory Path>"D:\myfolder\bin\" includeSubDirectories="false"/> </AssemblyResolution>

참고 항목See Also

코드 검사 분석 사용자 지정 Customizing Code Coverage Analysis
Visual Studio 테스트에 대한 테스트 설정 지정Specifying Test Settings for Visual Studio Tests