我正在寻找使用vstes.console.exe,任何帮助通过ClassName执行单元测试
我尝试过
/TestCaseFilter:"ClassName=ProgressTests"
Run Code Online (Sandbox Code Playgroud)
但抛出错误为
错误:没有测试与筛选器匹配,因为它包含一个或多个无效的属性(ClassName).指定包含有效属性的筛选表达式(TestCategory,Priority,FullyQualifiedName,Name),然后重试.
谢谢
我正在使用Visual Studio 2015.我正在尝试打印一些语句,仅用于跟踪非常长时间运行的测试.当使用VSTest.Console和/ Logger:trx时,调试输出(无论我们使用Console.WriteLine(),Debug.Writeline()还是Trace.WriteLine())都会进入生成的trx文件.但是,使用/ Logger:Console运行时,自定义调试输出不会显示在控制台输出上:仅显示测试结果.我甚至通过参考以下内容编写了自己的扩展名:
但是,目前尚不清楚如何从测试内部发送TestMessage,以便调用TestMessageHandler并打印输出.
我认为扩展在这里实际上可能是多余的,我可以使用作为Visual Studio Extensions的一部分的控制台记录器.也许我需要进行特定的调用来发送信息性消息,或者需要使用正确的命令行开关.
我现在正在使用以下命令:
Vstest.Console.exe <Test dll> /logger:Console
Run Code Online (Sandbox Code Playgroud)
测试运行但仅产生以下输出:
开始测试执行,请稍候......通过TestMethod1
总测试:1.通过:1.失败:0.跳过:0.测试运行成功.测试执行时间:3.3929秒
而trx文件在输出部分下面有以下部分,其中包括console.writeline()和debug.trace()输出:( 下面显示的文本只是为了举例)
<Output>
<StdOut>
Test Started
Test Ended
Debug Trace:
Test started
Test ended
</StdOut>
</Output>
Run Code Online (Sandbox Code Playgroud)
我想知道在使用Console记录器时是否也可以显示相同的信息.
我应该vstest.console.exe在文件夹路径中进行离线安装,如下所示:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
我尝试过使用离线包,例如vs_testagent.exe根据vs_testcontroller.exe以下链接:https://learn.microsoft.com/en-us/visualstudio/install/create-a-network-installation-of-visual-studio。但是,这些包不包含vstest.console.exe.
由于空间问题,我也无法完整安装 VS2017。有人有什么建议吗?谢谢。
正如本MSDN文章中所述,vstest.console可以过滤由特征运行的测试.例如,示例vstest.console命令可能如下所示:
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "C:\mytest.dll" /TestCaseFilter:"TestCategory=traitA|TestCategory=traitB|traitN" /logger:trx
Run Code Online (Sandbox Code Playgroud)
实际上,整篇文章说使用以下语法将提供多个特征:
<Expression> is of the format <property>=<value>[|<Expression>].
Run Code Online (Sandbox Code Playgroud)
我的问题是,当您提供的不仅仅是一个特征时,使用逻辑或官方文档过滤测试,而不是如何过滤与所有给定特征匹配的测试.