Visual Studio单元测试命令行方式之----VSTest.Console.exe命令

前面我们提到,在VS2010以及之前的版本中,使用的是MSTest.exe命令,而在VS2012,VS2013,VS2015版本中,都是VSTest.Console.exe命令了,MSTEST改为兼容方式了。

VSTest.Console.exe 是用于运行测试的命令行命令。 在 VSTest.Console.exe 命令行上,可以按任意顺序指定多个选项。 这些选项稍后将在本主题中的“常规命令行选项”表中列出。

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

打开方式:开始-->Developer Command Prompt for VS 2017,则打开vs的命令行工具窗口,输入where VSTest.Console命令,可以看到命令的路径是:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe

下表列出了 VSTest.Console.exe 的所有选项以及对应的简短说明。 在命令行上键入 VSTest.Console/? 可以看到类似的摘要。

说明

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

说明

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

 
官方最新文档:https://docs.microsoft.com/zh-cn/visualstudio/test/vstest-console-options

常规命令行选项

 

/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

 

出处:https://blog.csdn.net/cashcat2004/article/details/50180607

=======================================================================================

Visual Studio 单元测试工具vstest的使用及报告生成

在Windows下开发C++的程序,CppUnit, GTest等工具相对较为复杂,VS2012及后续的版本IDE中集成的单元测试工具使用起来相当方便快捷,Test Explorer也比较友好。

image

image

 

但怎样在没有安装Visual Studio的机器上或命令行下执行单元测试,以及 怎样导出报告的问题一直没有解决。

现找到方案如下:

1. VS提供了命令下执行单元测试的工具:vstest.console.exe。

2. trx2html等工具可以把生成的XML报告转成可读的HTML报告。

使用方法:

1.拷贝相关文件、工具到目标机器

a)编译出的单元测试DLL

b)程序运行依赖库。(可以在下面目录中找到)

   --“C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist”

c)单元测试工具目录TestWindow

   --“C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow”

2. 执行单元测试命令

执行前需要用Depends查看编译出的依赖DLL是否具备,否则会出现运行失败。

控制台或BAT文件中运行命令:“.\TestWindow\vstest.console.exe UnitTest_Simple.dll /logger:trx

  --   UnitTest_Simple.dll 为编译出的单元测试DLL。

  --   /logger:trx  此参数是为了在TestResults目录输出XML格式的 *.trx测试结果。

        image

   3. 转换测试结果 trx文件 为可读的HTML

TRX为XML文件,可以使用自定义的XSLT样式表来显示出来。

网上也有很多现在的教程、工具,如: trx2html, trxtohtml 等。

http://trx2html.codeplex.com/

可以下载源码,修改样式表XSLT符合自己的报告风格。

image

 

出处:https://www.cnblogs.com/herryzz/p/4733054.html

posted on 2022-05-10 17:35  jack_Meng  阅读(932)  评论(0编辑  收藏  举报

导航