6

我正在尝试使用 Jenkins 在 Windows Store 应用程序上进行持续集成。Jenkins 安装在 Linux 机器上(由于 iOS 和 Android 等其他项目)。为了管理 Windows 项目,我在 Windows 8 64 位 Pro 上安装了一个构建机器(WP8 项目是在这台机器上构建的)。我想将这台机器用于我的 WIndows Store 应用程序。

一开始,我使用 msbuild 构建了我的项目(用于生成 AppPackages 文件夹)。然后我接受证书(.cer)

CertUtil -addstore root <FILE.cer>

之后,我尝试在应用程序(.appx)上使用 vstest.console.exe。这个可执行文件需要在交互式服务中运行,所以我用另一个 exe 启动它,它可以访问交互式会话并启动 vstest.console.exe(我用这篇文章http://www.codeproject.com/制作了这个可执行文件文章/110568/Alternative-way-for-Window-services-to-interact-wi)。

尽管如此,vstest.console.exe 还是失败了,并显示该消息:

Microsoft (R) Test Execution Command Line Tool Version 11.0.60315.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
Error: Failed to launch test executor for the Windows Store app with error code 0.

当我运行我的脚本时,不使用 Jenkins 服务(或我构建的服务)它可以完美运行。用于 Windows 8 Phone,测试项目的脚本运行良好,但用于 Windows 8 Metro 应用程序时不能。

有没有人设法从服务运行单元测试?

4

1 回答 1

1

我们还通过启动和 MSBuild 作业将 Jenkins 用于 Windows Store App CI。也许这个片段会帮助你?

<Target Name="UnitTest" DependsOnTargets="PreTest;Compile" Condition="'$(SkipTests)'=='' and '$(Platform)'=='x86'" >
    <ItemGroup>
        <TestAppx Include="$(SolutionDir)\**\*x86*\**\*Tests*.appx" />
        </ItemGroup>

    <Message Importance="high" Text="Running tests for %(TestAppx.Identity)" />
            <Exec Command='"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" %(TestAppx.Identity) /InIsolation /platform:x86 /Logger:trx /UseVsixExtensions:true'
                  WorkingDirectory="$(SolutionDir)"/>
</Target>
于 2013-11-27T15:51:03.757 回答