使用仓库集成更新验证点文件

如果启用了仓库集成,验证点对话框可以显示来自映射 仓库预期 验证点(VP)。如果实际结果快照或截图与验证点中存储的数据不一致,请单击 更新预期 VP 按钮,以将仓库中的文件更新为匹配 实际 结果。

更新仓库中 VP 的按钮

文件系统仓库

对于来自 文件系统仓库 的验证点文件,更新机制只是简单地替换磁盘上的验证点文件。当您单击 更新预期 VP 按钮时,会显示一个确认对话框,其中您可以验证将被替换的仓库中的路径。

文件系统更新确认对话框

注意: 文件系统仓库没有跟踪随时间变化的方法,因此一旦您更新了验证点文件,就无法再查看从特定测试运行开始的变化。

Git 仓库

对于来自 Git 仓库的验证点文件,更新机制基于当前签出的分支头,或通过 .git.revision 标签提供的 git commit 哈希值。更新的验证点文件被添加到仓库文件夹中,并创建本地提交。

单击 更新预期 VP 按钮以指定提交 标题描述

Git 仓库中的 VP 更新对话框

已更新的验证点文件已提交到在Git仓库设置中指定的默认分支或由.git.branch标签指定的分支的头部。如果验证点文件已被其他用户或在之前的某个时间点更新,则提交按钮将禁用,并显示一条信息。

在仓库设置中,您还可以指定是否应将更新机制推向仓库的远程。如果启用在更新验证点文件时推动远程选项,则更新机制首先从远程拉取所有更改,然后将本地提交推送到远程。

更新机制使用来自Squish Test Center目录testcenter/config/scripts/git的脚本文件来更新仓库。Windows使用update.bat(带有推和拉)和update_local.bat(不带推和拉),而macOS和Linux使用update.shupdate_local.sh。您可以编辑脚本文件以调整Git工作流程。

验证点更新错误的可能解决方案

Squish Test Center不提供任何高级冲突解决功能,因此在某些错误情况下,您可能需要手动解决与Squish Test Center链接的仓库中的冲突。如果您遇到有关期望的Git工作流程的一般问题,请尝试调整在testcenter/config/scripts/git中找到的脚本以满足您的需求。如果您遇到与仓库远程状态相关的问题,请禁用在更新验证点文件时推动远程设置以禁用远程功能,并手动执行推送和拉取。

以下部分描述了更新错误的潜在原因。

尝试检出分支时出错

在验证点文件更新过程的早期步骤中,Squish Test Center需要检出更新验证点应该放入的分支。分支是通过检查.git.branch标签确定的(如果没有提供此标签,则使用Git仓库设置中的默认分支设置)。只有当仓库的当前分支与目标分支不同时,更新脚本才会调用git checkout

导致git checkout可能失败的一些常见原因包括

  • 通过.git.branch标签或默认仓库设置提供的分支名称不正确。
  • 分支仅存在于远程仓库中。更新脚本不会调用git fetch,因此您可能需要手动调用它。
  • 如果仓库有多个远程,分支名称可能是模糊的,您可能需要指定remote/branch
尝试从远程仓库拉取时出错
  • 可能为仓库指定了没有远程。要解决此问题,请手动在Squish Test Center外部指定远程,在Git仓库设置中禁用在更新验证点文件时推动远程,或调整testcenter/config/scripts/git中的更新脚本。
  • 远程上可能有冲突的更改。在Git中手动解决此问题。
  • 本地仓库目录中可能有不受跟踪的文件。在Squish Test Center外部手动解决此问题。确保链接的仓库目录仅由Squish Test Center使用。
尝试复制文件以替换验证点时出错

更新后的校验点文件放置在临时文件夹中,随后由更新脚本将其复制到仓库目录。如果运行 Squish Test Center 的系统用户没有权限将文件复制到仓库目录,则可能发生此错误。

向暂存区添加更改时出错

在更新校验点文件时,更新脚本调用git add path/to/vp/file。请确保该文件不匹配.gitignore.git/info/exclude中的排除规则。

创建本地提交时出错

在更新校验点文件时,更新脚本调用git commit -F来创建本地提交。如果git commit-msg钩子强制提交消息遵循特定格式,可能会失败。

未检测到差异

Squish Test Center 生成的更新后的校验点文件与数据库当前状态之间没有差异。这可能是由于校验点已经被其他用户更新了。

尝试将更改推送到远程仓库时出错

在创建本地提交后,更新脚本尝试调用git push。导致其失败的原因包括

  • 可能没有为仓库指定远程。通过手动在 Squish Test Center 外指定远程、在 Git 仓库设置中禁用更新 VP 文件时推送远程或在testcenter/config/scripts/git中调整更新脚本来解决这个问题。
  • 远程可能存在冲突更改。请在 Squish Test Center 外手动解决此问题。
  • 在此期间,远程仓库可能已被更新。在某些情况下,只需简单地再次尝试更新可能就足够了。

©2023 The Qt Company Ltd. 所包含的文档贡献均为各自所有者的版权。
本提供的文档根据由自由软件基金会发布的的条款许可。
Qt及其相关标志是芬兰和/或全球其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。