在 VS2015 上对 UWP 应用程序使用 xUnit 测试

Using xUnit test with UWP app on VS2015

这是 . I followed the steps as described here 的后续,示例测试按预期工作。这是我第一次接触到这个工作示例,但请等待真正的工作设置,这是我遇到问题的地方。

作为测试我的应用程序的下一步,我使用 "Add Reference..." 添加了我的 UWP 应用程序项目到 xUnit 测试项目。现在,在我引用我的项目后,当我 运行 测试(运行 全部在测试资源管理器窗格 VS2015 中)时,我收到以下错误:

Error Payload contains two or more files with the same destination path 'Assets\SplashScreen.scale-200.png'. Source files: ...\Projects\Sample\SampleUnitTest\Assets\SplashScreen.scale-200.png ...\Projects\Sample\Sample\Assets\SplashScreen.scale-200.png SampleUnitTest

还有两个错误,与上面完全相同,但是参考了 Square150x150Logo.scale-200.pngSquare44x44Logo.targetsize-24_altform-unplated.png 个图像文件。

我能理解这些错误的意思;被测试的应用程序和测试项目都生成视觉资源(启动画面图像、徽标、任务栏图标等),用于相同的输出,但这些是注册应用程序和 运行(在在我的例子中是本地机器)。我从来没有遇到过这样一个有争议的问题,即两个项目输出相同的视觉资源,希望有人知道如何解决这个问题。如果我将项目更改为 Class 项目,单元测试将不起作用,因此这不是一个选项。

你如何处理 xUnit 测试项目和被测试项目之间的争议情况(wrt 视觉资源)?

好的,我想出了如何解决驻留在 Assets 文件夹中的视觉资源之间的冲突,但这会导致 xUnit 出现一种新问题(这将是我的 )。

  • 对于 xUnit 项目,将 A​​ssets 文件夹重命名为 Images(或者您认为更好的替代名称) .
  • 指向xUnit项目下的Package.appxmanifest文件,将其作为代码文件打开。为此,select Package.appxmanifest 文件并按 F7,或 right-click 文件和 select 查看代码 上下文菜单命令.
  • 在代码文件中,将文件夹名称 A​​ssets 替换为 Images 或您选择用来重命名 Assets 文件夹的任何名称。保存它。

现在测试项目将编译并且运行没有视觉资源输出冲突。然而,关于 xUnit,我们将遇到另一个问题,如我的 .

中所述