调查并静音构建失败
当构建因某些问题或测试失败而无法进行时,TeamCity允许您将构建失败的调查任务分配给某个用户,或者静默该失败,使其不影响构建状态。
您可以指定对整个失败的构建配置进行调查,或者调查/静音单一的 构建问题和失败的测试。 Investigate/Mute(调查/静音)功能对构建问题和失败的测试的处理方式完全相同。
所需权限
为了能够在特定项目中管理和查看调查/静音,用户必须在此项目中获得以下权限:
"在项目中静音/取消静音问题":用于管理静音
"分配/取消分配调查":用于管理调查
"查看项目及所有父项目":用于查看调查/静音
这些权限默认授予项目管理员和系统管理员。
分配失败的构建配置的调查
为了指派失败的构建配置的调查:
导航至 Overview(概览)选项卡中的 构建配置首页 页面(或者 Overview 选项卡中的 构建结果 页面),然后点击 Assign investigation(分配调查)。
从 Investigated by 下拉菜单中选择一个 TeamCity 用户。
选择条件以解决这项调查:
保存调查。
要为同一项目中的其他失败的构建配置分配类似的调查,点击 More(更多)并在列表中选择配置。
分配构建问题和失败测试的调查任务
为了指派对特定构建问题的调查:
导航至 Overview(概览)选项卡,此页处于 Build Results (构建结果)页面(或者 Current Problems (当前问题)选项卡,此页处于 Project Home(项目主页)),点击构建问题旁边的箭头,然后点击 Investigate/Mute(调查/静音)。
Investigate/Mute对话框已打开。从 Investigated by 下拉菜单中选择一个 TeamCity 用户。
选择条件以解决这项调查:
Automatically when fixed(修复后自动解决)(阅读更多)
或者,Manually(手动)
被分配调查任务的用户,稍后可以在此窗口中将问题标记为已修复。
保存调查。
您可以在 Overview(概览)或 Tests (测试)选项卡中的Build Results (构建结果)里,类似地分配一个失败测试的调查。
静音构建问题
要静音特定的构建问题:
导航至 Overview(概览)选项卡,位于 Build Results(构建结果)页面(或 Current Problems (当前问题)选项卡,位于 Project Home(项目主页)),点击构建问题旁的箭头,然后点击 Investigate/Mute(调查/静音)。
将打开 调查/静音 对话框。选择在哪里静音问题:
整个项目,即在当前项目及其子项目的所有配置中静音问题。
选定的构建配置,它允许您从同一个项目中选择特定的构建配置。
选择条件以取消静音问题:
Automatically when fixed(修复后自动解决)(阅读更多)
在特定日期
或者,Manually(手动)
点击 Save。
静音测试
您可以在 Overview(概览)或 Tests (测试)选项卡,或者在 Build Results(构建结果)中,像静音构建问题一样,对失败的测试或一次对几个测试进行静音处理。
静音仅会影响到失败在 “At least one test failed”("至少有一个测试失败")构建失败条件的构建,但不会影响到其他条件:如果您的构建适用于任何其他失败条件(例如,非零退出代码),即使失败的测试被静音了,构建仍将失败。
当某些测试由于已知原因失败,但当前无法修复它们时,此功能会非常有用。 例如,负责的开发者缺席,或者您正在等待系统管理员修复环境。 如果测试故意失败,该功能也可以被使用:例如,如果所需功能尚未准备就绪。
在所有这些情况下,您可以静音这样的失败,避免对其他开发者造成不必要的干扰。
当一个测试被静音后,它还是会在将来的构建中 继续运行,但其失败并不会影响构建的状态。
当存在失败但被静音的测试时,您的构建脚本可能需要进行调整以使构建成功。 确保构建不会因其他构建失败条件(例如,"如果构建过程退出代码不为零则失败")而失败,以防遇到的唯一错误是测试失败。 请查看相关问题 TW-16784 以获取更多详情。
更改项目调查范围或静音
当用户分配调查或静音问题时,TeamCity 会建议需要进行调查或静音的范围。 默认情况下,它建议在当前项目中应用这个操作,用户通常会确认这个默认范围。 然而,同样的问题往往不仅出现在单一项目中,而且可能出现在多个相邻的子项目中,这些子项目都是同一父项目的子项目。 在这种情况下,有必要在整个父项目的范围内调查或静音此问题。
自版本 2021.12 以来,项目管理员可以更改每个项目首选的调查/静音范围的值。 在父项目的设置中设置 teamcity.internal.preferredInvestigationProject
配置参数 将使该项目成为其所有子项目的 Investigate/Mute 对话框中的默认范围。 该值应包含父项目 ID。 这个属性只更改默认提议的选项 —— 用户仍然可以在对话框中调整范围。
将问题标记为已修复
被分配调查的用户可以在任何与此问题相对应的 Investigate 用户界面对话框中将调查过的问题标记为已修复。
在所有 TeamCity 页面上,问题都会被标记为 。 这使得可以在用户界面中识别出一个可能已经修复的问题,但是如果在下一次构建运行中问题仍然存在,还可以继续调查。 如果调查的作者已打开相应的 通知,他们会收到有关修复的通知。
如果问题未再次出现并且此调查的解决条件为 "Automatically when fixed" (修复后自动解决),则 TeamCity 将在标记为已修复的调查之后的下一次构建运行中移除调查。
查看调查和静音功能
您可以在 Project Home 页面上查找所有的调查和项目的静音:
Investigations 标签:查看项目中分配的所有调查
静音问题标签:查看项目中所有静音问题和测试
在这里,您可以取消静音问题和测试,并将调查重新分配给另一个用户或将其标记为已修复。
查看我的调查
如果有一项或多项调查分配给您,调查计数器将会出现在 TeamCity 顶部面板中您的名字旁边:
点击它以打开 My Investigations 页面,在该页面上您可以看到分配给您的不同项目中的所有调查。 您可以直接在此页面上管理问题:标记为已修复,重新分配,静音,或放弃调查。
对于每一个失败的测试,您可以立即看到:
所有测试当前失败的构建配置
当前堆栈跟踪和有关测试当前失败的构建的信息
关于测试的首次失败的信息,包括堆栈跟踪和构建
如果您启用了 "高亮显示我的更改和调查" 选项, 在用户界面中分配给您的调查也会被突出显示。该选项位于您的 个人资料设置 中。
查看调查历史
自TeamCity 2020.1起,您可以查看应用于每项调查的操作历史。 这对于大型团队和项目最有帮助,因为并不容易确定谁以及何时更改或解决了调查。
要查看调查的历史记录,请打开任何可以查看此 调查 的 UI 页面,并在其上下文菜单中点击 显示调查历史。
关于自动修复调查和静音问题的注释
如果在 Investigation(调查)或 Mute(静音)选项中选择了 "Automatically when fixed" (修复后自动解决)选项,TeamCity 将分析不同分支中每个失败的状态以更智能地解决调查或静音:
如果故障发生在默认分支和另一个活动分支中,并且在这些分支中任意一个中已经为这个故障分配了调查(或静音),那么只要在默认分支中修复了此故障,它就会立即修复。
如果故障发生在默认分支以外的任何活动分支中,只有当它在所有发生故障的活动分支中都得到修复时,指定的调查(或静音)才会修复。