为什么不构建我的UWP单元测试项目会产生一个测试dll

时间:2018-03-21 05:21:51

标签: c# uwp visual-studio-2017

我试图从命令行运行单元测试。 为此,我需要测试dll,如下所示: https://msdn.microsoft.com/en-us/library/ms182490.aspx

在该页面的先决条件部分,它说我需要"运行单元测试并修复您的代码"

问题1:我是否需要从VS 运行测试才能从命令行运行它们?当然不是吗?

现在更重要一点。当我构建我的解决方案时,无论是通过VS还是使用MSBuild的命令行,我都没有为我的测试生成任何dll。

我知道这是针对C ++的,但是思想可能仍然是相关的https://social.msdn.microsoft.com/Forums/vstudio/en-US/a89c2173-90e6-47b2-af8e-48865969cbca/msbuild15-does-not-create-a-dll-file-after-building-the-c-native-unit-test-project?forum=msbuild。 (当然不是它有帮助。)

问题2:为什么在构建时不会生成单元测试dll?

1 个答案:

答案 0 :(得分:1)

在单元测试方面,UWP与其他项目略有不同。通用Windows应用程序在沙箱中运行,以确保他们不会做他们没有权限的事情。出于这个原因,单元测试项目不仅仅是一个简单的DLL,而且实际上是一个成熟的UWP应用程序(以及生成的可执行文件具有appx扩展名),它已启动并执行测试。

也就是说,您仍然可以使用特殊命令从控制台启动单元测试项目,如this SO answer中所示。

vstest.console.exe /Platform:x64 AppPackages\UnitTestProject1_1.0.0.0_x64_Debug_Test\UnitTestProject1_1.0.0.0_x64_Debug.appx