iOS版Travis CI
最近,我想为我的应用程序实现持续集成。 我想很多人和我偶然发现了Travis CI上的objc.io文章。 不幸的是,这篇文章已经过时了,它是从2013年11月开始的。
同时,自从撰写本文以来,Facebook的xctool
项目中一直在讨论xctool
是否要支持Xcode8。但是,我们已经在Xcode 9上了。与此同时,已经发生了很多变化,文章已过时。
我个人认为objc.io应该不时测试他们的文章,或者至少要提到所使用的技术无效或无法正常工作。 由于他们没有更新他们的文章,我觉得我应该发布更新。
因此,基本上改变的是xctool has some new commands, for example test has been replaced by run-tests
。 此外, xctool
不再构建您的项目,我们必须退回到xcodebuild
, xcbuild
或Buck(Facebook的新项目)。
假设您知道如何使用GitHub帐户将项目链接到Travis CI,我将主要讨论.travis.yml
文件。
我只强调了.travis.yml
文件的一些区别。 您仍然需要在objc.io文章中添加仍然正确的其他元素。
如您所见,存在一些差异。 例如:(1)我们可以安全地将语言设置为Swift,如今,(2)应该仍然可以正常工作,但是我仍然更喜欢使用xctool
。
(3)完全是错误的, 这不再起作用 。
(4)这就是正确调用xctool
! 使用xcodebuild
或您喜欢并且可能已经使用的任何其他构建系统来构建工作区。 然后使用xctool
运行测试。
在第14行的摘要中,如果您将-scheme TravisExampleTests
更改为-scheme TravisExampleTests
,则还可以免费运行UI测试。 这需要其他配置,因为以这种方式运行将导致断言失败: NSInternalInconsistencyException, "No target application path specified via test configuration"
。
我们该如何解决? 不幸的是, xctool
不能运行UITests。 我们将再次使用Buck或xcodebuild
。 请记住,运行UI测试需要花费大量的配置(在方案中,在运行xcodebuild方面),因为必须有一个已启动的模拟器。
调用xcodebuild
进行UI测试的示例如下:
xcodebuild test -workspace TravisExample.workspace -scheme TravisExampleUITests -destination 'platform=iOS Simulator,name=iPhone 6,OS=11.2
正如您在要点中看到的那样,自objc.io上的文章撰写以来,有很多更改。 尽管您仍然需要xcodebuild
或xctool
以外的任何工具来运行UI测试,但xctool
不再构建 ,它仍在进行测试。
本文是否有助于您设置Travis CI环境? 然后请鼓掌 , 发表评论并给我反馈 。 谢谢!