在 VS2015 上使用 xUnit 测试 UWP 应用

use*_*851 1 c# xunit.net visual-studio-2015 dnx uwp

这是这个问题的后续。我按照此处描述的步骤进行操作,示例测试按预期工作。这是我第一次接触这个工作示例,但是等待真正的工作设置,这就是我遇到麻烦的地方。

作为测试我的应用程序的下一步,我使用“添加引用...”将我的 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.png图像Square44x44Logo.targetsize-24_altform-unplated.png文件。

我能理解这些错误的含义;正在测试的应用程序和测试项目都生成用于相同输出的视觉资源(启动屏幕图像、徽标、任务栏图标等),但需要这些资源来注册应用程序并运行(在本地计算机上)我的情况)。我从来没有遇到过两个项目输出相同的视觉资源这样有争议的问题,希望有人知道如何解决这个问题。如果我将项目更改为类项目,单元测试将不起作用,因此这不是一个选项。

您如何处理 xUnit 测试项目和正在测试的项目之间的争议情况(关于视觉资源)?

use*_*851 5

好的,我想出了如何解决 Assets 文件夹中的视觉资源之间的冲突,但这会给 xUnit 带来一种新的问题(这将是我的后续问题)。

  • 对于 xUnit 项目,将Assets文件夹重命名为 Images(或任何您认为更好的替代名称)。
  • 指向xUnit项目下的Package.appxmanifest文件并将其作为代码文件打开。为此,请选择 Package.appxmanifest 文件并按 F7,或者右键单击该文件并选择“查看代码”上下文菜单命令。
  • 在代码文件中,将文件夹名称Assets替换为Images或您选择用来重命名 Assets 文件夹的任何名称。保存。

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