Swift 测试在本地通过,但在 Travis-CI 上构建失败
Posted
技术标签:
【中文标题】Swift 测试在本地通过,但在 Travis-CI 上构建失败【英文标题】:Swift tests pass locally but the build fails on Travis-CI 【发布时间】:2015-06-26 12:29:04 【问题描述】:我正在尝试设置我的cocoapod 项目,以便在推送后在 Travis-CI 上运行它的测试。我正在使用 xctool 0.2.4 运行测试,它在本地执行良好。但是一旦它在 Travis-CI 上运行,编译构建步骤就会由于各种原因而失败,我似乎无法在本地重现。
xctool test -project test/MEViewExtensions.xcodeproj -scheme MEViewExtensions -sdk iphonesimulator
这里有两个在我的机器上运行良好的故障:
https://travis-ci.org/materik/meviewextensions/builds/68458750
Basic Block in function '_TFE16MEViewExtensionsCSo8UIScreeng5widthV12CoreGraphics7CGFloat' does not have terminator!
label %entry2
LLVM ERROR: Broken function found, compilation aborted!
https://travis-ci.org/materik/meviewextensions/builds/68465719
/Users/travis/build/materik/meviewextensions/test/MEViewExtensionsTests/UIViewTests.swift:22:33: error: type '@autoclosure () -> CGFloat' does not conform to protocol 'FloatLiteralConvertible'
XCTAssertEqual(view2.x, 10.0)
我至少希望在我的机器上得到相同的错误,以便能够对其进行调试。有什么想法吗?
【问题讨论】:
【参考方案1】:问题是我在 Xcode 6.3 上使用较新版本的 Swift 运行测试,而 Travis 测试是在 Xcode 6.1 上运行带有不同类型错误的旧版本。必须将osx_image: beta-xcode6.3
添加到我的.travis.yml
文件中以强制Travis 在更高版本上运行,然后就可以了。
【讨论】:
以上是关于Swift 测试在本地通过,但在 Travis-CI 上构建失败的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Swift 连接到本地 Firebase 服务器?