gpt4 book ai didi

git - 测试不同客户端和服务器版本的最佳 Git 策略

转载 作者:太空狗 更新时间:2023-10-29 13:12:22 30 4
gpt4 key购买 nike

我希望能够为 Java 客户端/服务器(使用嵌入式码头)运行集成测试。此外,我希望能够在集成测试期间混合搭配不同的服务器和客户端源代码版本。

我想知道最好的 git 或 maven 版本策略是什么:

  1. 客户端和服务器使用相同的 git 存储库,将很难 check out 各种服务器版本的代码并针对各种客户端版本的代码进行测试。

  2. 使用单独的 git 存储库(第一个存储库带有客户端 src 和集成测试,第二个存储库带有服务器 src)- 还需要检查两个存储库以运行集成测试,并假定它们之间的相对路径。

  3. 仅针对 maven 版本的服务器 WAR 测试客户端源代码,可能会导致开发人员在针对与 checkout 的服务器源代码不匹配的服务器 WAR 运行测试时犯下诚实的错误。

    <

最佳答案

我将指出第三个挑战:集成测试可能存在错误,因此您可能也希望独立控制测试版本。

我使用 git 的子模块功能来协调多个存储库。创建一个新的存储库,其中将包含对客户端存储库和服务器存储库的引用。您也可以在此父存储库中放置一个基本的测试驱动程序。

当新的开发人员加入团队时,他们可以克隆这个父代码库,然后运行 ​​git submodule update --init 来克隆客户端和服务器子模块。这样他们就可以像其他人一样设置任何相对路径。

但是,我不喜欢让客户端仓库假定服务器位于 ../server/。所以我处理这个的方法是让父 repo 将任何需要的路径传递给子模块。例如,您可以在运行的父存储库中有一个 test.sh

make -C client SERVER_PATH=$(pwd)/server test

在您的情况下,您还可以将所有测试代码放在父存储库中。然后它可以安全地采用子模块的相对路径。

这种安排的一个有趣的附带好处是:您可以创建记录特定版本组合的 git 提交,因为在子模块中 checkout 的版本在您提交到父存储库时会被记录下来。您可以使用它为已通过测试的版本组合创建分支或标签集合。

关于git - 测试不同客户端和服务器版本的最佳 Git 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314017/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com