【问题标题】:Unit Testing Windows 8 WIndows Runtime Component With TeamCity使用 TeamCity 对 Windows 8 WINdows 运行时组件进行单元测试
【发布时间】:2015-01-14 16:12:20
【问题描述】:

我不是 Windows 8 开发人员,所以请原谅任何愚蠢的问题。

我有一个通过 .sln 文件在 Visual Studio 2013 中构建的 Windows 8.1 应用程序。这包含许多项目:有一个依赖于库的应用程序,该库(称为 datalib)构建为 Windows 运行时组件(不是 DLL); 还有一个测试项目在“datalib”上运行测试

所有这些在 VS2013 中都可以正常工作,即执行测试。

我的任务是为此创建一个 TeamCity 构建,因此我创建了一个针对 sln 文件构建的 TeamCity 构建,但我无法执行测试(它们是 MSTest 测试)。

在我的配置中,我添加了 test.dll(在“包含程序集文件列表”中),但是当我自己添加它时,我在“datalib”中的类型引用中遇到了一堆错误

“datalib”内置于 datalib.winmd(我假设这是二进制文件),所以我认为将其包含在程序集列表中可以解决我的问题,但事实并非如此。

我假设我遗漏了一些简单的东西,它是什么?

【问题讨论】:

    标签: unit-testing teamcity windows-8.1


    【解决方案1】:

    我现在能够做到这一点,这是一个多步骤的过程。

    首先你不直接加载/测试winmd文件,你必须加载由测试项目1创建的appx;您不能使用 TeamCity 附带的 MSTest runner,而是必须安装 Visual Studio Test Runner 插件 [2];您必须在交互式过程中运行构建代理;最后,您必须安装用于签署应用程序的根证书。

    您像引用 DLL 一样引用 appx

    要安装构建代理并让它以交互方式运行,使用该服务并标记“与桌面交互”还不够好,您需要进行完全交互,因此代理必须以管理员身份从桌面运行,在启动时。为此,我必须创建一个在启动时运行并获得完全权限的计划任务。

    我通过在与 appx 文件 (Add-AppDevPackage.ps1) 相同的目录中运行 ps1 文件来安装证书我确信这有点矫枉过正,但它似乎是当时最简单的选择

    [1]http://msdn.microsoft.com/en-us/library/hh691189.aspx

    [2]https://confluence.jetbrains.com/display/TW/VSTest.Console+Runner

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 2016-07-22
      相关资源
      最近更新 更多