我在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中的脚本执行。还有其他人遇到过这个问题吗?
答案 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的测试版,但似乎大多数仍然适用。