Jenkins iOS 作业中断,因为“致命:日志语句不同步:当前测试用例为空”

Posted

技术标签:

【中文标题】Jenkins iOS 作业中断,因为“致命:日志语句不同步:当前测试用例为空”【英文标题】:Jenkins iOS job broken because "FATAL: Log statements out of sync: current test case was null" 【发布时间】:2013-01-18 21:55:47 【问题描述】:

我为我的 ios 项目设置了 jenkins 作业。主机目标运行顺利,而单元测试目标因“jenkins 控制台输出”给出的一个非常奇怪的原因而失败,如下所示:

[DEBUG] 测试用例“-[WhereYouAreTests testShowMainTopbar]”已启动。 测试用例“-[WhereYouAreTests testShowMainTopbar]”通过(0.000 秒)。 致命:日志语句不同步:当前测试用例为空 构建步骤“XCode”将构建标记为失败 完成:失败

为了清楚起见,WhereYouAre 是我的“宿主目标”,而 WhereYouAreTests 当然是单元测试目标。 在我提出这个问题之前,我确实到处搜索过。唯一的一条线索在这里:http://baolei.tumblr.com/,其中写道:

getschh 问:你好,宝。我尝试了关于使用 xcode 4.5 和 ios 6 使用 ruby​​ 脚本进行 ios 单元测试的方法。我重新配置了詹金斯的工作。首先我想:哇,这很好用。当我仔细观察它时,我发现了一个大问题。我总是收到以下错误:致命:日志语句不同步:当前测试用例是“testBarcodeUtilWithCorrectValues”。它总是发生在不同的单元测试中。此错误的结果:错误发生后,不再有单元测试是 testet。我能做什么?

当您在本地机器上(而不是通过 Jenkins)运行脚本时,它是否有效?如果没有,也许您可​​以尝试仅使用一个简单的测试用例创建一个全新的项目,并使用该脚本。如果您可以让一个新项目正常工作,那么您可以尝试注释掉您实际项目中的大部分测试用例,只留下一些测试,然后看看会发生什么。 iOS 测试设置很挑剔,有时您确实必须进行大量试验才能使一切顺利进行。

我的单元测试在 Xcode 中运行良好。所以它显然对我没有帮助。

请有人告诉我一个方法或任何线索。提前致谢。

顺便说一句,我的环境为此配置: 操作系统 10.7 XCode 4.6 Jenkins (brew 安装包) 1.5

【问题讨论】:

我也有同样的问题,希望有人能解决这个问题... 这似乎是由 Jenkins Xcode 插件无法解析测试的输出引起的。这发生在我身上,因为出于某种原因,在 ios-sim 下运行测试会导致 [DEBUG] 在每个输出行的开头打印。我还没弄清楚为什么会这样。 【参考方案1】:

我已经修补了 Jenkins Xcode 插件以解析带有 [DEBUG] 开头的行就好了(并且通常使它更宽松):

https://github.com/jenkinsci/xcode-plugin/pull/19

希望你觉得它有用。

【讨论】:

【参考方案2】:

我遇到了同样的问题并设法通过在模拟器上执行Erase all contents and settings 来解决它,然后再次触发构建。

https://medium.com/@lawrey/fixing-fatal-log-statements-out-of-sync-current-test-case-was-null-in-jenkins-xcode-f14c8b117641

【讨论】:

以上是关于Jenkins iOS 作业中断,因为“致命:日志语句不同步:当前测试用例为空”的主要内容,如果未能解决你的问题,请参考以下文章

使用 DB 运行 Spring Boot 测试时,Jenkins 代理作业被终止

尝试在单台 Mac 机器上使用并行 Jenkins 管道构建 iOS 应用程序时出现缓存问题

Jenkins作业DSL参数被配置块覆盖

如何将AWS实例的详细信息传递给jenkins作业,以便该作业在实例中ssh和执行

Jenkins 控制台输出中的奇怪字符

如何在jenkins中启动另一个作业时获取内部错误消息