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

MSTest.exe finds no test cases via cmd, but works fine in VS2015 IDE

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

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

按照建议 使用 'vstest.console.exe' 结果相同。

另外,网上的例子大部分都提供了一个dll给mstest。但是在vs2015的输出中没有创建dll。需要通过 jenkins 中的脚本执行。还有其他人遇到过这个问题吗?

当您 运行 对付 exe 时,您应该会收到类似这样的警告,给您一些提示:

Warning: Unit tests for Windows Store and Windows Phone apps cannot be run outside appcontainer. Create an app package and run tests in appcontainer mode. http://go.microsoft.com/fwlink/?LinkId=254169

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

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

接下来会提示你填写输出位置,版本,...

在此屏幕上,确保 select 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 提供了更多信息和一些其他故障排除技巧。尽管博客 post 被标记为 VS11 的测试版,但似乎大部分内容仍然适用。