从命令行使用 VSTest.console

 

发布时间: 2016年7月

使用 VSTest.Console.exe 从命令行中运行单元或编码的 UI 测试。  它针对性能进行了优化,并代替 MSTest.exe 用在 Visual Studio 2012 或更高版本中。  

在 VSTest.Console.exe 命令行上以任意顺序指定多个选项。  下面的常规命令行选项表中列出了这些选项。  

vstest.console.exe 说明你按照不区分大小写的方式指定这些选项和值。

下表列出了 VSTest.Console.exe 的所有选项以及对应的简短说明。  在命令行上键入 VSTest.Console /? 可以看到类似的摘要。  VSTest.Console.exe 的位置如下:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow。  

备注

Visual Studio 2012 中的 MSTest 适配器还在旧模式下工作(等效于使用 mstest.exe 运行测试)以实现兼容性。  在旧模式下,它无法利用新的 VS11 功能 TestCaseFilter。  在以下情况下,适配器可以切换到旧模式:指定 .testsettings 文件、在 .runsettings 文件中将 forcelegacymode 设置为 true 或使用类似 HostType 这样的特性。  

备注

若要在基于 ARM 体系结构的计算机上运行自动测试,你必须使用 VSTest.Console.exe。

常规命令行选项

/Settings:[文件名]

使用其他设置(如数据收集器)运行测试。

示例:/Settings:Local.RunSettings

/Tests:[测试名称]

运行具有与提供的值匹配的名称的测试。

若要提供多个值,请使用逗号将这些值分隔。

示例:/Tests:TestMethod1,testMethod2

警告

/Tests 命令行选项不能与 /TestCaseFilter 命令行选项一起使用。

/Enablecodecoverage

在测试运行中启用数据诊断适配器 CodeCoverage。

如果未使用设置文件指定设置,则将使用默认设置。

/InIsolation

在隔离的进程中运行测试。

虽然这使得 vstest.console.exe 进程不太可能在测试出错时停止,但测试的运行速度会较慢。

/UseVsixExtensions

这使得 vstest.console.exe 进程使用或跳过在测试运行中安装的 VSIX 扩展(如果有)。

示例:/UseVsixExtensions:true

/Platform:[平台类型]

将用来执行测试的目标平台体系结构。

有效值为 x86、x64 和 ARM。

/Framework: [Framework 版本]

要用于测试执行的目标 .NET Framework 版本。

有效值为 Framework35、Framework40 和 Framework45。

示例:/Framework:framework40

/TestCaseFilter:[表达式]

运行与给定表达式匹配的测试。

<Expression> 的格式为 <property>=<value>[|<Expression>]。

示例:/TestCaseFilter:"Priority=1"

示例:/TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName"

警告

/TestCaseFilter 命令行选项不能与 /Tests 命令行选项一起使用。

/Logger:[uri/friendlyname]

为测试结果指定一个记录器。

示例:若要将结果记录到 Visual Studio 测试结果文件 (TRX),请使用 /Logger:trx

示例:若要将测试结果发布到 Team Foundation Server,请使用 TfsPublisher:

/logger:TfsPublisher;

Collection=<team project url>;

BuildName=<build name>;

TeamProject=<team project name>;

[;Platform=<Defaults to “Any CPU”>]

[;Flavor=<Defaults to “Debug”>]

[;RunTitle=<title>]

备注

TfsPublisher 记录器需要 Visual Studio 2012 和 [Visual Studio 2012.1] 或更高版本。

/ListTests:[文件名]

列出给定测试容器中的已发现的测试。

/ListDiscoverers

列出已安装的测试发现器。

/ListExecutors

列出已安装的测试执行器。

/ListLoggers

列出已安装的测试记录器。

/ListSettingsProviders

列出已安装的测试设置提供程序。

将 VSTest.Console.exe 用于测试文件

vstest.console.exe 的语法如下:

Vstest.console.exe [TestFileNames] [Options]

下面演示的是从命令行中使用 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 文件和独立进程中指定的数据。  此外,它将筛选测试用例以基于“优先级 1”运行,并将结果记录到 .trx 文件中。  

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

请参阅

从命令行运行自动测试
Compatibility of Test Settings with Visual Studio 2010
Upgrading Tests from Earlier Versions of Visual Studio