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。 |
常规命令行选项
/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 |
列出已安装的测试设置提供程序。 |
出处:https://blog.csdn.net/cashcat2004/article/details/50180607
=======================================================================================
Visual Studio 单元测试工具vstest的使用及报告生成
在Windows下开发C++的程序,CppUnit, GTest等工具相对较为复杂,VS2012及后续的版本IDE中集成的单元测试工具使用起来相当方便快捷,Test Explorer也比较友好。
但怎样在没有安装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测试结果。
3. 转换测试结果 trx文件 为可读的HTML
TRX为XML文件,可以使用自定义的XSLT样式表来显示出来。
网上也有很多现在的教程、工具,如: trx2html, trxtohtml 等。
可以下载源码,修改样式表XSLT符合自己的报告风格。
出处:https://www.cnblogs.com/herryzz/p/4733054.html
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/16254535.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!