相关疑难解决方法(0)

Apple CI/Xcode服务和Jenkins

有没有一种方法/插件可以将新的Xcode服务和/或新的Apple CI与Jenkins集成?

为什么?

让Jenkins服务器+ OSX构建从属连接的主要问题ssh单元测试不起作用,因为iOS模拟器需要一个在此配置中不存在的图形环境.

我希望可以将Xcode服务(支持单元测试)与Jenkins集成.

可能是使用Apple CI就足以满足我的需求,但这个问题的目的是将Xcode服务与Jenkins集成.

我已经知道的了

我对现有的Xcode Jenkins插件有经验,但似乎不支持全新的Xcode服务或新的Apple CI.我特别热衷于通过CI进行单元测试(使用旧方式在ssh会话中无法正常工作).

我想知道什么

我想了解以下与Jenkins和ssh连接的构建奴隶无关的问题的信息:

  • 单元测试无头系统
  • 弗兰克或类似的验收测试
  • 自动配置配置文件更新(Apple CI执行此操作)

关于目前与Jenkins和ssh连接的构建从站一起工作的事情的信息仍然应该与Xcode服务集成一起工作:

  • 构建不同的构建配置(Release,Debug,TestFlight)/ scheme
  • 自动构建数量增量
    • (使用Jenkins,我可以将项目中的内部版本号设置为${BUILD_NUMBER},并且Jenkins根据其内部版本号设置此环境变量.当Apple CI执行构建时,很可能会设置内部版本号.)
    • 处理/同步Jenkins和Apple CI之间的内部版本号
  • 从不同的Jenkins Jobs访问Apple CI的构建产品
    • 例如,要将作业上传到TestFlight
  • 备份构建
  • 自动构建git push到特定分支
  • 邮件通知

一些额外的问题/提示

  • 我不确定Apple CI == Xcode serviceApple CI 是否只使用 Xcode服务.在后一种情况下,Xcode服务就像一个智能构建从属服务器,Jenkins可能会使用它来进行构建和测试,但是自己管理构建数量和产品.
  • 我知道Apple CI是一个单独的CI,并且将几个CI相互集成并不是最简单或最有用的方法.我只是担心Apple CI对我的需求不够灵活(见上文),并且与Jenkins的旧方式存在一些问题(见上文).

macos xcode continuous-integration ios jenkins

28
推荐指数
2
解决办法
1万
查看次数

当输出重定向到文件时,xcodebuild会破坏测试结果输出

我将Jenkins与Xcode插件配置为通过将测试构建操作添加到Custom xcodebuild参数设置来运行单元测试.有关让Jenkins使用Xcode 5运行单元测试的更多信息,请参阅此问题.

现在我已经运行了,它似乎将NSLog语句的控制台输出或最终** TEST SUCCEEDED **消息与测试结果混合在一起,因此偶尔会将解码器绊倒,将单元测试结果转换为Jenkins所需的JUnit格式.

例如,Jenkins日志显示如下输出:

Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsNotZero]' passed (** TEST SUCCEEDED **

0.000 seconds).
Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsZero]' started.
Run Code Online (Sandbox Code Playgroud)

什么时候它应该是:

Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsNotZero]' passed (0.000 seconds).
Test Case '-[Redacted_Conversion_Tests testConvertTo_ShouldSetamount_WhenamountIsZero]' started.
** TEST SUCCEEDED **
Run Code Online (Sandbox Code Playgroud)

我进一步调查了这一点,并把詹金斯拉出了画面.如果我在命令提示符下直接运行xcodebuild命令:

xcodebuild \
    -workspace project.xcworkspace \
    -scheme Tests \
    -configuration Release \
    -sdk iphonesimulator7.0 \
    -destination "platform=iOS Simulator,name=iPhone Retina (4-inch),OS=latest" \
    test
Run Code Online (Sandbox Code Playgroud)

输出总是很好,有序.

但是,如果我将输出传递给另一个程序或重定向到文件:

xcodebuild \
    -workspace project.xcworkspace \
    -scheme Tests \
    -configuration Release \ …
Run Code Online (Sandbox Code Playgroud)

xcode unit-testing pipe xcodebuild xcode5

12
推荐指数
2
解决办法
3881
查看次数