MSTest.exe通过cmd找不到测试用例,但在VS2015 IDE中工作正常

时间:2016-03-21 13:41:27

标签: unit-testing visual-studio-2015 win-universal-app mstest jenkins-mstest

我在Visual Studio 2015中添加了一个单元测试应用程序(通用Windows)项目。它正确地在IDE中的测试资源管理器中发现并运行所有测试用例。但是当从命令行运行MSTest.exe时,它会显示消息“No tests to execution”。 执行的命令是

MSTest.exe /testcontainer:"F:\Projects\MyUnitTests\bin\Release\MyUnitTests.exe" /resultsfile:F:\testResults.trx

使用'vstest.console.exe'建议here时的结果相同。

此外,大多数在线示例都为mstest提供了一个dll。但是vs2015的输出中没有创建dll。需要这个由jenkins中的脚本执行。还有其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:0)

当您针对exe运行时,您应该收到类似于此的警告,它会给您一些提示:

  

警告:不能对Windows应用商店和Windows Phone应用进行单元测试   在appcontainer外面运行。创建一个应用程序包并运行测试   appcontainer模式。   http://go.microsoft.com/fwlink/?LinkId=254169

要使用通用测试项目,您需要创建一个应用程序包,然后针对该测试包运行测试。要创建捆绑包,请右键单击您的项目,然后选择Store=>Create App Packages

您将创建一个本地应用程序包,因此您可以选择No以提示上传到Windows应用商店。

接下来,系统将提示您填写输出位置,版本......

在此屏幕上,请务必为Never选项选择Generate app bundle

单击“创建”后,将命令行打开到创建应用程序包的位置。您还必须安装证书。您可以使用certutil

从命令行执行此操作
certutil -addstore "Root" .\UnitTestProjectName_1.0.0.0_x86_Debug.cer

最后,现在您可以使用针对应用包的vstest.console.exe命令行运行测试:

vstest.console.exe .\UnitTestProjectName_1.0.0.0_x86_Debug.appx /InIsolation
来自Microsoft的

This blog post提供了更多信息和其他一些疑难解答提示。尽管博客文章标记为VS11的测试版,但似乎大多数仍然适用。