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

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

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

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

按照建议使用“vstest.console.exe”时的结果相同 here .

此外,大多数在线示例都为 mstest 提供了一个 dll。但是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



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

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

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

在此屏幕上,确保选择 NeverGenerate 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

This blog post Microsoft 提供了更多信息和其他一些故障排除技巧。尽管博客文章被标记为 VS11 的测试版,但似乎大部分内容仍然适用。

关于unit-testing - MSTest.exe 通过 cmd 找不到测试用例,但在 VS2015 IDE 中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36132631/

相关文章:

c# - 为什么一个单元要测试 MVC 路由?

c# - 找不到 Xamarin.Android.Support.Compat

c# - 在 UWP 项目中引用 native c++ dll

Java - 如何测试 Catch block ?

java - 无法从生产类访问测试资源

unit-testing - 开 Jest mock document.referrer

Unity 中的 C# 脚本打开 VS15 的新实例而不是添加到现有实例

typescript - 我可以在 Visual Studio 2015 中为 TypeScript 创建代码片段吗?

c# - UWP 窗口导航到(激活的)事件

c# - 我在 C# 中找不到 KeyPress 事件处理程序