2

我是 CI/CD 的新手,在 Internet 上找不到任何有关如何将 AppCenter Test 与 TFS 2018 一起使用的信息。我在 TFS 中有我的 Xamarin 项目,但我想在 AppCenter Test 的设备云中测试它们。

MS 的文档中有几个文档使它看起来是可能的,但对于新手来说,他们提供了关于如何实现它的零信息。 是一个例子。如果您查看顶部,此文档与 TFS 2018 相关。

4

2 回答 2

0

Azure Pipeline中,您可以使用YAML经典编辑器来定义您的管道。但 TFS 2018 尚不支持 YAML 构建。

因此,您需要使用经典编辑器将 App Center Test 任务添加到您的管道中,然后参考文档中的Arguments来定义任务。

于 2019-04-03T07:12:40.640 回答
0

这是我为使其正常工作所做的工作。不知道它是否正确,但是嘿,它有效!

Xamarin.UITest

如果您不执行以下步骤,您将在本地运行测试并且不会发生任何事情,它们将立即退出。

首先转到工具 > 选项 > 测试 > 常规 > 活动解决方案,然后取消选中For improved performance, only use test adapters in test assembly folder or as specified in runsettings file

public class AppInitializer
    {
        public static IApp StartApp(Platform platform)
        {
            if (platform == Platform.Android)
            {
                return ConfigureApp.Android
                    // You may need to adjust the following relative path based on where you created your UITest project
                    .ApkFile(@"..\..\..\<AppName>\<AppName>.Android\bin\Release\<App Package Name>.apk")
                    // Uncomment if you are running locally and you want VS to launch/install app
                    //.PreferIdeSettings()
                    .StartApp();
            }
            return ConfigureApp.iOS.StartApp();
        }
    }

不要像 MS 文档所说的那样添加对您的 Android 和 iOS 项目的引用。这将引导您走上数小时无用故障排除的道路

在开发窗口框中部署您的代理。请按照以下说明操作:https ://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops

TFS 2018 配置

  1. 在 TFS 中单击进入项目的存储库
  2. 点击“构建和发布”
  3. 右上角点击“+新建”
  4. 点击“继续”
  5. 向下滚动并单击“Xamarin.Android”
  6. 在下一个屏幕上,将代理队列设置为您之前创建的任何内容,可能是默认值

我的构建任务列表

  • Nuget 工具安装程序
  • .NET 核心
  • 努吉特
  • Xamarin.Android
  • 微软构建
  • 安卓签名
  • 节点工具安装程序
  • 努吉特
  • 应用中心测试

这是我的详细构建步骤

Nuget 工具安装程序

  • 使用 Nuget
  • version of nuget to install:(4.9.3这是我注意到我的 VS 正在使用的)
  • 所有其他默认值

.NET 核心

  • 命令:restore
  • 项目路径:**/*.csproj
  • 所有其他默认值

努吉特

  • 命令:custom
  • 命令和参数:restore -MsbuildPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin"
  • 其他所有默认值

Xamarin.Android

  • 项目:**/*Droid*.csproj
  • 目标:(空)
  • 输出目录:$(build.binariesdirectory)\$(BuildConfiguration)
  • 配置:$(BuildConfiguration)
  • MSBuild:启用Specify Location
  • MSBuild 位置:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin
  • JDK 选项,JDK 8 x64
  • 所有其他默认值

微软构建

  • 项目:(适合这个以匹配您的 uitest 项目):**/*UITest*.csproj
  • MSBuild 版本:最新
  • 平台:(空)
  • 配置:$(BuildConfiguration)
  • MSBuild 参数:/p:OutputPath="$(build.binariesdirectory)\$(BuildConfiguration)\test-assembly"
  • 所有其他默认值

安卓签名

  • APK 文件:$(build.binariesdirectory)\$(BuildConfiguration)\*.apk
  • 检查签署APK并输入您的信息
  • Jarsigner 参数:-verbose -sigalg MD5withRSA -digestalg SHA1
  • 检查到 Zipalign
  • Zipalign 位置:(空)
  • 所有其他默认值

节点工具安装程序

  • 版本规范:(选择您系统上已有的任何版本)10.11.0
  • 所有其他默认值

注意:在下一步之前,创建一个名为 XamarinUITestVer 的新变量,并将值设置为要用于要安装的 Xamarin.UITest Nuget 包的任何值。在我的情况下,我设置的值是:2.2.7

努吉特

  • 命令:custom
  • 命令和参数(请参阅上面的注释):install Xamarin.UITest -Version $(XamarinUITestVer) -OutputDirectory "$(Agent.BuildDirectory)\Nuget"
  • 所有其他默认值

应用中心测试

  • 二进制应用程序文件路径:$(build.binariesdirectory)\$(BuildConfiguration)\*.apk
  • 神器目录:$(Build.ArtifactStagingDirectory)\AppCenterTest
  • 检查:“准备测试”
  • 测试框架:Xamarin UI Test
  • 构建目录:$(build.binariesdirectory)\$(BuildConfiguration)\test-assembly
  • 存储文件:(空)
  • 店铺密码:(空)
  • 关键别名:(空)
  • 密钥密码:(空)
  • 测试工具目录:$(Agent.BuildDirectory)\Nuget\Xamarin.UITest.$(XamarinUITestVer)\tools\
  • 签约信息:(空)
  • 附加选项:(空)
  • 查看:Run Tests
  • 身份验证方法:App Center Connection
  • 应用中心连接:(创建新连接)
  • App Slug:通过“几乎”在 AppCenter 中创建一个测试来获得它。从 AppCenter 中的应用程序创建一个New Test Run,选择设备,选择Next并选择Xamarin.UITest并点击Next。在下方,您将看到--app字符串,这就是您用于此字段的内容。
  • 设备:通过“几乎”在 AppCenter 中创建测试来获取此信息。从 AppCenter 中的应用程序创建一个New Test Run,选择设备,选择Next并选择Xamarin.UITest并点击Next。在下方,您将看到--devices字符串,这就是您用于此字段的内容。
  • 所有其他默认值
于 2019-04-05T12:24:17.907 回答