使用 .runsettings 檔案設定單元測試
使用 .runsettings 檔案,單元測試是在 Visual Studio 2012 中設定。例如,您可以變更測試執行的 .NET Framework,測試結果執行目前的目錄和在測試回合期間所收集的資料。
![]() |
---|
.runsettings 和 .testsettings .runsettings 是新的 Visual Studio 2012。如果您熟悉 Visual Studio 舊版的單元測試,您可能知道 .testsettings 檔案。您可以在 Visual Studio 2012 仍將 .testsettings,因此,為舊版撰寫的任何測試組態中運作。但是 .testsettings 只可以用來設定為 MSTest 配接器中的測試。相反地, .runsettings 可以搭配 Visual Studio 2012 建置的可延伸單元測試架構任何配接器,例如 xUnit。Web 和 NUnit。 使用 .testsettings 檔案的測試要使用 .runsettings 檔案的測試可能要緩慢執行,或者沒有組態檔。 您仍然需要的 .testsettings 檔案測試:
如需 .testsettings 的詳細資訊,請參閱 指定 Visual Studio 測試的測試設定。 |
自訂與 .runsettings 檔案的測試
將 XML 檔加入至 Visual Studio 方案並將它重新命名,使其副檔名為 .runsettings。
取代與 範例的檔案內容。
編輯控制項的需要。
在 [測試] 功能表上,選擇 [測試設定]],則 [選取測試設定檔案]。
您可以使用 [測試設定] 功能表,您可以建立多個方案的一 .runsettings 檔案,以及啟用或停用它們在不同時間。
複製這個範例 .runsettings 檔案
這一般 .runsettings 檔案。因為每個值都有預設的,檔案中的每個項目都是選擇性的。
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- Configurations that affect the Test Framework -->
<RunConfiguration>
<!-- 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>
</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>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
<!-- Adapter Specific sections -->
<!-- MSTest adapter -->
<MSTest>
<MapInconclusiveToFailed>True</MapInconclusiveToFailed>
<CaptureTraceOutput>false</CaptureTraceOutput>
<DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
<DeploymentEnabled>False</DeploymentEnabled>
</MSTest>
</RunSettings>
本主題的其餘部分說明檔案內容。
編輯您的 .runsettings 檔案
.runsettings 檔案具有下列項目。
測試回合組態
節點 |
Default |
值 |
---|---|---|
ResultsDirectory |
將測試結果的目錄。 |
|
TargetFrameworkVersion |
Framework40 |
Framework35, Framework40, Framework45 這會指定單元測試架構的版本來尋找及執行測試。它可以與您在單元測試專案的建置屬性指定 .NET 平台的版本不同。 |
TargetPlatform |
x86 |
x86、x64, |
TreatTestAdapterErrorsAsWarnings |
false |
false, true |
診斷資料配接器 (資料收集器)
DataCollectors 元素指定診斷資料配接器設定。診斷資料配接器來收集關於環境的其他資訊與受測應用程式。每個配接器有預設值,因此,您只需要提供設定,如果您不想使用預設值。
程式碼涵蓋範圍配接器
程式碼涵蓋範圍資料收集器建立應用程式的程式碼區段在測試執行時的記錄。如需自訂程式碼涵蓋範圍設定的詳細資訊,請參閱 自訂程式碼涵蓋範圍分析。
其他診斷資料配接器
程式碼涵蓋範圍配接器目前是使用回合設定檔,可以自訂的配接器。
若要自訂任何其他型別的診斷資料配接器,您必須使用測試設定檔。如需詳細資訊,請參閱指定 Visual Studio 測試的測試設定。
MSTest 回合設定
這些設定是針對執行測試方法具有 [TestMethod] 屬性的測試配接器。
組態 |
Default |
值 |
---|---|---|
ForcedLegacyMode |
false |
在 Visual Studio 2012, MSTest 配接器最佳化更快速且更升級。某些行為,例如測試執行的順序,可能無法正確地是,在 Visual Studio 先前的版本。將此值 true 使用舊的測試配接器。 例如,如果您有,為單元測試,指定的 app.config 檔案可以使用此。 建議您考慮重構測試可讓您使用較新的配接器。 |
IgnoreTestImpact |
false |
測試影響功能設定優先權是最近受變更影響,,在 MSTest 或從 Microsoft Test Manager 的測試。這項設定會停用功能。如需詳細資訊,請參閱HOW TO:收集資料以檢查程式碼變更後應該要執行的測試。 |
SettingsFile |
您可以指定測試設定檔使用與此處 MS 測試配接器。使用 [測試] 功能表上, [測試設定], [選取測試設定檔案],您也可以指定測試設定檔。 如果您指定這個值, ForcedlegacyMode 自動設定為 true。 |
|
KeepExecutorAliveAfterLegacyRun |
false |
在測試回合完成後, MSTest 被關閉。啟動做為測試之一部分的所有處理序此時也會被刪除。如果您想要讓測試執行程式使用,請將這個組態則為 true。 例如,您可以使用此繼續瀏覽器在自動程式碼 UI 測試之間。 |
DeploymentEnabled |
true |
如果設定為 false,您在測試方法中指定的部署項目不會複製到部署目錄。 |
CaptureTraceOutput |
true |
使用 Trace.WriteLine,您可以從測試方法的偵錯追蹤撰寫。使用此組態,您可以關閉這些偵錯追蹤。 |
DeleteDeploymentDirectoryAfterTestRunIsComplete |
true |
您可以在測試回合之後保留部署目錄將此值設定為 false。 |
MapInconclusiveToFailed |
false |
如果測試傳回以一結果不明的狀態,它通常會對應至在測試總管中要略過的狀態。如果您要結果不明的測試顯示為失敗,請使用這種組態。 |
InProcMode |
false |
如果您在流程要測試執行和 MS 測試配接器相同,請將此值設定為 true。這個設定提供較小效能。但是,如果測試結束有例外狀況,其他測試不會繼續。 |