Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用git将测试与主分支分开?_Git_Github_Workflow - Fatal编程技术网

如何使用git将测试与主分支分开?

如何使用git将测试与主分支分开?,git,github,workflow,Git,Github,Workflow,我是git的新手,我对在其存储库中维护项目的测试用例特别感兴趣 这是一个小的Bash端项目,我有几个存储库。我希望在同一回购协议中维护测试用例。我该怎么做呢?我是否维护一个长寿命的测试分支,在那里我从dev分支合并更改,运行测试,然后合并到发布分支?但是这样做会迫使我从测试分支中挑选特性/更改(假设我在测试分支中也进行了更改),从而避免合并测试用例。 我看到的分支模型讨论了在新提交到开发分支上运行测试套件,作为单独运行的CI/CD。它对于大型项目来说是有意义的,并且是方便的,但对于小型项目来说不

我是git的新手,我对在其存储库中维护项目的测试用例特别感兴趣

  • 这是一个小的Bash端项目,我有几个存储库。我希望在同一回购协议中维护测试用例。我该怎么做呢?我是否维护一个长寿命的测试分支,在那里我从dev分支合并更改,运行测试,然后合并到发布分支?但是这样做会迫使我从测试分支中挑选特性/更改(假设我在测试分支中也进行了更改),从而避免合并测试用例。 我看到的分支模型讨论了在新提交到开发分支上运行测试套件,作为单独运行的CI/CD。它对于大型项目来说是有意义的,并且是方便的,但对于小型项目来说不是吗

  • 另外,我将如何推进测试用例本身的开发?为每个这样的项目的测试用例维护单独的repo不会增加存储库的数量吗

  • 我一直在寻找最佳实践,我考虑了以下几点:保持发布分支没有任何测试工件。在一个单独的分支中发展。测试以查看它是否值得发布,如果不进行更改,则再次测试并仅将更改合并到发布分支。VonC的答案似乎符合这一流程


    我确实希望测试用例位于同一存储库中,但可能不在同一分支中。
    只是想保持树枝整齐有序

    其中一个技巧是:

    • 将测试放在单独的分支中
    • 将主分支中的测试作为子模块参考
    请参阅中的完整示例

    您在推送的分支测试中提交测试。
    然后将该分支作为子模块添加到主模块中:

    git submodule add -b test git@github.com:user/repo.git test
    git commit -m "added test as submodule"
    git push
    
    默认情况下,签出的回购(生产中)将有一个空的测试子文件夹。
    如果(在开发中)添加一个
    git子模块更新--init
    ,那么测试子文件夹将包括测试内容

    每次修改测试时,都会添加、提交和从子模块推送(设置为推送到
    test
    分支)。

    然后返回父文件夹(位于
    master
    分支中的文件夹),添加、提交并推送更改的(表示
    测试的新SHA1
    子模块repo)

    为什么不将测试用例保存在同一存储库和同一分支中?为什么测试用例应该是与代码分开的版本?一个相当标准的做法是总是要求新功能与测试合并。我确实希望测试用例在同一个存储库中,但可能不在同一个分支中,因为我不希望测试用例与“生产就绪代码”一起出现当释放分支签出时。@antlersoft Well,它可以位于同一分支中。我考虑的更多是将测试用例和工作代码分开维护。将测试用例与生产代码一起呈现有什么关系?它们是否会部署到磁盘空间极其有限的硬件上,以至于测试用例中的字符非常昂贵?谢谢。看起来我必须尝试子模块的变体,看看哪一个最适合。我已经有了一些子模块,我认为这些子模块作为依赖项是必要的,但现在看来是多余的。所以,这应该是可行的。