从命令行使用 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