使用 .runsettings 文件配置单元测试
使用 .runsettings 文件,单元在 Visual Studio 2012 测试可以配置。 例如,您可以更改测试将运行,内容的 .NET framework 测试结果交付的位置,因此,数据收集在测试运行过程。
备注
.runsettings 和 .testsettings
.runsettings 是新在 Visual Studio 2012。如果熟悉单元测试在 Visual Studio 的早期版本,则可能知道 .testsettings 文件。在 Visual Studio 仍可以使用名为 .testsettings 2012 中,因此,任何测试对以前版本编写要处理的配置。但 .testsettings 只用来配置测试编写针对 MSTest 适配器。相反,.runsettings 可用于编译的任何适配器为可扩展单元测试在 Visual Studio 中 framework 2012 中,例如 xUnit。net 和 NUnit。
测试使用名为 .testsettings 文件的速度可能比使用运行测试 .runsettings 文件,或为其没有配置文件。
您仍需要的文件名为 .testsettings 测试:
-
测试在实验室环境部署。
-
Web 性能测试和负载测试。
-
自定义诊断数据适配器的某些类型,如 IntelliTrace 和事件日志。
有关 .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 文件具有以下元素。
测试运行配置
节点 |
默认 |
值 |
---|---|---|
ResultsDirectory |
测试结果将放置的内容。 |
|
TargetFrameworkVersion |
Framework40 |
Framework35,Framework40,Framework45 这指定单元测试的版本测试框架使用查看,并执行测试。 它可能与您在单元测试生成属性指定测试项目的 .NET 平台不同版本。 |
TargetPlatform |
x86 |
x86,x64 |
TreatTestAdapterErrorsAsWarnings |
false |
错误,true |
诊断数据适配器 (数据收集器)
DataCollectors 元素指定诊断数据适配器设置。 诊断数据适配器来收集有关环境的其他信息,并受测应用程序。 每个适配器具有默认设置,因此,您必须只提供设置,如果您不想使用默认值。
代码复盖率适配器
代码复盖率数据收集器创建应用程序代码节放在测试已执行的记录。 有关自定义代码复盖率设置的更多信息,请参见 自定义代码覆盖率分析。
其他诊断数据适配器
代码复盖率适配器是当前使用的运行设置文件,可以自定义的唯一适配器。
若要自定义任何其他类型的诊断数据适配器,必须使用测试设置文件。 有关更多信息,请参见指定 Visual Studio 测试的测试设置。
MSTest 运行设置
这些设置特定于运行测试方法具有 [TestMethod] 属性的测试适配器。
配置 |
默认 |
值 |
---|---|---|
ForcedLegacyMode |
false |
在 Visual Studio 2012 中,MSTest 适配器优化可更快且可伸缩。 某些行为,如的顺序测试运行,可能无法正确为,在 Visual Studio 的以前版本。 将此值 true 使用旧测试适配器。 例如,在中,如果为单位指定的一个 app.config 文件运行测试,则可以使用此。 建议您考虑重构测试允许您使用较新的适配器。 |
IgnoreTestImpact |
false |
测试影响功能优先级测试受最近更改的影响,运行时,在 MSTest 或从 Microsoft 测试管理器。 此设置停用该功能。 有关更多信息,请参见如何:收集数据来检查在代码更改后应该运行的测试。 |
SettingsFile |
可以指定测试设置文件使用 MS 测试适配器示。 使用菜单 测试,测试设置,选择测试设置文件,还可以指定测试设置文件。 如果指定此值,ForcedlegacyMode 自动设置为 true。 |
|
KeepExecutorAliveAfterLegacyRun |
false |
在测试运行完成后,MSTest 关闭。 会作为测试的一部分此时还将杀害的任何进程。 如果要使测试执行器运行,启用此配置为 true。 例如,可以使用此继续浏览器中运行编码的 UI 测试之间。 |
DeploymentEnabled |
true |
如果将此为 false,则在您指定的部署项测试方法不会复制到部署目录中。 |
CaptureTraceOutput |
true |
使用 Trace.WriteLine,可以写入从您的调试跟踪测试方法。 使用此配置,可以关闭这些调试跟踪。 |
DeleteDeploymentDirectoryAfterTestRunIsComplete |
true |
可以在测试设置中后保留部署目录此值来为错误。 |
MapInconclusiveToFailed |
false |
如果测试返回以无结论的状态,它通常映射到跳过测试的状态资源管理器。 如果希望无结论的测试显示为未通过,请使用此配置。 |
InProcMode |
false |
如果在同一希望测试进程中运行,当 MS 测试适配器,请将该值设置为 true。 此设置将提供相对小性能提升。 但是,如果测试退出具有异常,其他测试不会继续。 |