如何在每个 pull-request 中进行 运行 特定测试?
How to run specific tests at each pull-request?
假设我们有超过 1500 个测试,并且在 pull-request 合并到 master 分支之前我们有一个测试管道总是 运行s测试,所有测试需要 45 分钟以上才能得到 运行。其中一些测试没有必要 运行 一次又一次,其中一些应该 运行.
我们是否有解决方案来指定哪些测试应该 运行 在哪个拉取请求中,哪些测试不应该 运行 在特定的拉取请求中,或者我应该这样问.我们能以某种方式定义一个过滤器来指定哪些测试应该在 [X] 拉取请求中获得 运行 吗?
您应该能够将 phpunit 配置为 运行 特定分支的特定测试,例如,在下面的配置中,phpunit 将 运行 master 分支的所有测试,并且 运行 仅匹配 feature/*
glob 模式的任何分支的测试子集:
pipelines:
default:
- step:
name: Run all tests
script:
- phpunit mydir
branches:
master:
- step:
name: Run all tests
script:
- phpunit mydir
'feature/*':
- step:
name: Run only MyTest test class
script:
- phpunit --filter MyTest
或者,您应该能够根据 BITBUCKET_BRANCH
environment variable:
来决定 运行 哪个测试
pipelines:
default:
- step:
name: Run test that match the name of the branch
script:
- phpunit --filter "${BITBUCKET_BRANCH}"
假设我们有超过 1500 个测试,并且在 pull-request 合并到 master 分支之前我们有一个测试管道总是 运行s测试,所有测试需要 45 分钟以上才能得到 运行。其中一些测试没有必要 运行 一次又一次,其中一些应该 运行.
我们是否有解决方案来指定哪些测试应该 运行 在哪个拉取请求中,哪些测试不应该 运行 在特定的拉取请求中,或者我应该这样问.我们能以某种方式定义一个过滤器来指定哪些测试应该在 [X] 拉取请求中获得 运行 吗?
您应该能够将 phpunit 配置为 运行 特定分支的特定测试,例如,在下面的配置中,phpunit 将 运行 master 分支的所有测试,并且 运行 仅匹配 feature/*
glob 模式的任何分支的测试子集:
pipelines:
default:
- step:
name: Run all tests
script:
- phpunit mydir
branches:
master:
- step:
name: Run all tests
script:
- phpunit mydir
'feature/*':
- step:
name: Run only MyTest test class
script:
- phpunit --filter MyTest
或者,您应该能够根据 BITBUCKET_BRANCH
environment variable:
pipelines:
default:
- step:
name: Run test that match the name of the branch
script:
- phpunit --filter "${BITBUCKET_BRANCH}"