使用仓库集成更新验证点文件
如果启用了仓库集成,验证点对话框可以显示来自映射 仓库 的 预期 验证点(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.sh
和update_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. 的商标。所有其他商标均为其各自所有者的财产。