Unit testing 测试持续集成的分支是什么?

Unit testing 测试持续集成的分支是什么?,unit-testing,testing,continuous-integration,tdd,Unit Testing,Testing,Continuous Integration,Tdd,对于新项目,版本控制分支结构如下: * develop * feature * master 我不知道我应该在不同的分支上编写测试,比如说一个新的分支testbranch,还是仅仅在现有的开发分支上?在特性中编写单元测试或在测试分支中开发分支和集成测试是一种好的做法。如果没有,测试应该去哪里?保持一个单独的测试分支有什么好处和坏处?我的开发部门将经常投入和推动 谢谢您的回答。我过去所做的是从开发服务器的QA和开发功能构建 通过这种方式,您可以看到开发人员提供的最新代码,并且当您合并特性更改时,

对于新项目,版本控制分支结构如下:

* develop
* feature
* master
我不知道我应该在不同的分支上编写测试,比如说一个新的分支
test
branch,还是仅仅在现有的开发分支上?在
特性中编写单元测试或在测试分支中开发
分支和集成测试是一种好的做法。如果没有,测试应该去哪里?保持一个单独的测试分支有什么好处和坏处?我的开发部门将经常投入和推动


谢谢您的回答。

我过去所做的是从开发服务器的QA和开发功能构建

通过这种方式,您可以看到开发人员提供的最新代码,并且当您合并特性更改时,可以将其推送到QA

我认为,您应该始终在这两个分支上运行单元测试和集成测试


测试应该是构建过程的一部分。

我过去所做的是从开发服务器的QA和开发功能构建

通过这种方式,您可以看到开发人员提供的最新代码,并且当您合并特性更改时,可以将其推送到QA

我认为,您应该始终在这两个分支上运行单元测试和集成测试


测试应该是构建过程的一部分。

您所描述的不是真正的持续集成,它看起来更像瀑布式集成,因为所有这些分支。这些分支机构中的任何一个分支机构的工作均未(持续)与任何其他分支机构的工作相结合

这意味着您的测试的影响也将局限于执行该测试的分支。要将其应用于其他分支,您需要等待您的更改集成到相应的分支中(或双重提交,但这会增加分支合并期间要解决的冲突列表)。当然,您需要在需要测试结果的每个分支中重复测试——因为分支上下文不同,在一个分支中获得的结果不一定可以在另一个分支中重复

当然,没有什么可以阻止您在某些/所有这些分支中使用CI工具,但这并不能使其成为持续集成

在这种情况下(在此情况下,我假设
功能
分支最终将合并到
开发的
中,从那里,当足够稳定时,所有内容都将合并到
)通过在
develope
中工作,或者在
master
中重复测试执行,以验证在master中完成的任何其他额外工作(如果有的话)没有破坏东西,您将以最少的工作量产生最大的影响


在真正的持续集成中,所有的开发工作都是在单个/主要分支中完成的,包括大部分/所有的测试。每个人都在同一个页面上,没有暴露于质量水平的中断,以及由于分支机构合并和没有重复工作而需要的额外的无法量化的工作量。更不用说一个更简单更清晰的过程了——你甚至不需要问这个问题:)

你所描述的不是真正的持续集成,它看起来更像瀑布——因为所有这些分支。这些分支机构中的任何一个分支机构的工作均未(持续)与任何其他分支机构的工作相结合

这意味着您的测试的影响也将局限于执行该测试的分支。要将其应用于其他分支,您需要等待您的更改集成到相应的分支中(或双重提交,但这会增加分支合并期间要解决的冲突列表)。当然,您需要在需要测试结果的每个分支中重复测试——因为分支上下文不同,在一个分支中获得的结果不一定可以在另一个分支中重复

当然,没有什么可以阻止您在某些/所有这些分支中使用CI工具,但这并不能使其成为持续集成

在这种情况下(在此情况下,我假设
功能
分支最终将合并到
开发的
中,从那里,当足够稳定时,所有内容都将合并到
)通过在
develope
中工作,或者在
master
中重复测试执行,以验证在master中完成的任何其他额外工作(如果有的话)没有破坏东西,您将以最少的工作量产生最大的影响


在真正的持续集成中,所有的开发工作都是在单个/主要分支中完成的,包括大部分/所有的测试。每个人都在同一个页面上,没有暴露于质量水平的中断,以及由于分支机构合并和没有重复工作而需要的额外的无法量化的工作量。更不用说一个更简单更清晰的过程了——你甚至不需要问这个问题:)

投票支持“两个分支”,但应该是“所有三个分支”。如果需要分支,它就需要CI。@DaveSchweisguth-我倾向于创建分支,只是为了让我有时间在不影响其他人的情况下进行重大更改,就像我做一些实验一样。这些分支不需要CI,因为它们只是暂时有用。然后,它们被合并到正确的开发分支中,该分支上应该有CI。如果您有一个在开发机器上合理时间运行的测试套件,并且您始终记得运行它,并且在通过时严格要求只合并,那么这将行得通。请投票支持“两个分支”,但它应该是“所有三个分支”。如果需要分支,它就需要CI。@DaveSchweisguth-我倾向于创建分支,只是为了让我有时间在不影响其他人的情况下进行重大更改,就像我做一些实验一样。这些分支不需要CI,因为它们只是暂时有用。然后将它们合并到正确的开发分支中,该分支上应该有CI