git - 如果我测试一个拉取请求构建,我是否需要在合并后运行相同的测试?
问题描述
我正在使用具有拉取请求构建和分支构建的 Travis CI。我确信这对其他 CI 服务很常见。
如果我有一个develop
分支和一个feature/A
分支,那么当我从feature/A
target打开拉取请求时develop
,拉取请求构建会运行我的单元测试。
假设我的单元测试通过,我合并拉取请求和分支构建触发器,因为对develop
. 此分支构建构建我的容器并将其部署到开发环境。
我应该在我的分支构建上运行与拉取请求构建期间相同的单元测试套件,还是可以安全地假设因为拉取请求测试通过了,分支构建也会?运行这些测试会浪费周期吗?
解决方案
这实际上是一个很好的问题,而且一点也不罕见,根据我的经验,tests
再次运行是一个好主意,除非你是唯一一个making pull requests
这样做的人branch
,假设你的tests
运行正确,但有人pull request
在你之前做出了正确的决定,而你feature-branch
不是与该代码保持同步,一些代码可能merged
会develop-branch
影响您已经使用的某些流程tested
,这可能会导致fail/misbehavior
您的代码出现问题。避免将这些推misbehaviors
送到实时环境的一种方法是tests
在接受 a 后立即再次运行pull request
,这将为您的管道增加一些周期,但我认为它可以缓解hotfixes/issues
.
推荐阅读
- spring-boot - 使用 Spring Cloud Gateway 获取访问令牌,使用 Keycloak 获取 Spring Security
- java - 页面对象模型中的 java.lang.NullPointerException
- django - 在 django 中使用查询过滤的下拉列表
- ios - Environment Object 中的 SwiftUI Observable Object 不会更新视图
- python - 男性不存在 Django 匹配查询
- python - 了解 Tensorflow Object-Detection API,Checkpoint 类的 kwargs,什么是`_base_tower_layers_for_heads`?
- python - 使用熊猫在图表上查找最大值
- javascript - 请向我解释 if 条件中的 true 指的是什么?
- java - 使用 Gradle 6 构建避免拆分包的附加工件
- loopback4 - 在关系内的全局范围内过滤“位置”