【问题标题】:Teamcity and Unit Testing Windows Store appsTeamcity 和单元测试 Windows 应用商店应用
【发布时间】:2015-07-08 23:02:21
【问题描述】:

我一直在努力让 Teamcity 9 为我的 Visual Studio 解决方案编译和运行单元测试。

我有一个 Windows Phone 8.1(WinRT,不是 silverlight)项目和一个具有通用功能的“MyProject.Common.dll”可移植类库。

我创建了一个“Windows Phone 单元测试应用程序”项目。如果我从 VS 运行它,它会在模拟器上运行并运行我的单元测试。一切正常。

如果我想从 控制台 运行单元测试,我使用以下命令:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe MyProject.Tests_1.0.0.1_x86.appx /InIsolation /settings:RunOnEmu.runsettings"

它有效。它启动模拟器,部署 appx 并运行单元测试。

现在的问题:使用 Teamcity 9,我使用相同的命令配置命令行构建步骤运行器,我收到此错误:

错误:无法为 Windows Phone 应用程序的测试启动测试运行: Windows 应用商店应用的单元测试不能从服务或非服务运行 交互过程。请从交互式运行单元测试 过程..

有没有办法绕过这个错误?

【问题讨论】:

    标签: unit-testing windows-phone-8.1 continuous-integration win-universal-app teamcity


    【解决方案1】:

    更改所需从站的 Jenkins 配置。在“启动方法”选项中,现在可能是“让 Jenkins 将此从站作为 Windows 服务控制”,但您需要“JLNP”(Java 网络启动协议):

    【讨论】:

    • 我使用的是 Teamcity,而不是 jenkins
    【解决方案2】:

    最后,我制作了一个自定义脚本来启动 vstest.console.exe 并运行单元测试 appx,然后是另一个构建步骤以将测试结果加载到 TeamCity。

    【讨论】:

    • 嗨,@Herno 我遇到了和你一样的问题,我试图解决它的方法是运行一个自定义的 powershell 脚本,但我仍然得到你提到的异常。您能否添加更多有关您如何解决此问题的信息?谢谢。
    • 你好。我编写了一个小型 C# 程序来启动控制台。我无法绕过错误。如果你想要我可以分享的源代码,请告诉我
    • 啊哈,我现在明白了。这就是我接下来想做的事情。如果您可以将代码发布在 github 上或作为要点发布,那将是一个好主意,这样如果其他人遇到这个问题,他们可以更快地修复它。再次感谢!
    【解决方案3】:

    还有另一种绕过它的方法 - 将构建代理作为可执行文件而不是作为服务运行。您可以通过删除 TeamCity 服务来实现:

    service.stop.bat
    service.uninstall.bat
    

    (所有 .bat 文件都在 TeamCity 构建代理的 bin 文件夹中)

    然后创建新的 .bat 文件以将构建代理作为可执行文件启动:

    C:\TeamCity\buildAgent\bin\agent.bat start
    

    并将此文件的快捷方式放入C:\Users\%user%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 的启动文件夹中,并按照here 的描述设置自动登录。这样构建代理将在重启后自动启动。

    我找到了这个解决方案here 以及有关 Windows 应用商店测试的一些其他常见问题和解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      相关资源
      最近更新 更多