我的CirleCI工作流程有一个config.yaml
。
我使用PHPUnit运行测试,但我想开始使用Circle并行运行这些测试,以加快部署过程。
所以BuildJob
看起来像这样:
jobs:
# build-job
build-job:
<<: *defaults
resource_class: large
steps:
- checkout
- run: sudo apt install -y libsqlite3-dev zlib1g-dev libpng-dev libxml2-dev
- run: sudo docker-php-ext-install zip
- run: sudo docker-php-ext-install gd
- run: sudo docker-php-ext-install soap
- run: sudo docker-php-ext-install bcmath
- run: sudo composer self-update
- restore_cache:
keys:
- composer-v1-{{ checksum "composer.lock" }}
- composer-v1-
- run: composer install -n --prefer-dist
- save_cache:
key: composer-v1-{{ checksum "composer.lock" }}
paths:
- vendor
- restore_cache:
keys:
- node-v1-{{ checksum "package.json" }}
- node-v1-
- run:
name: Create sqlite db
command: touch database/database.sqlite
- run:
name: Run tests
command: ./vendor/bin/phpunit -d memory_limit=512M
- persist_to_workspace:
root: ~/laravel
paths: .
所以我知道我需要在parallelism: 4
之前添加Run tests
,以便并行运行它们,如记录的here所示,但是我需要依次进行直至SomeService.someMethodverifyEmail()
的步骤。然后,我将有多个运行测试步骤来命中每个测试文件夹。
反正有实现这一目标的方法吗?
答案 0 :(得分:1)
根据此讨论(https://discuss.circleci.com/t/how-to-execute-phpunit-tests-in-parallel/25622),使用CircleCI CLI命令circleci tests split
为并行容器拆分测试的常用方法不适用于phpunit。但是,正如@matfax所说,您可以在几个逻辑组中运行测试吗?像
./vendor/bin/phpunit tests/ThisGroup
./vendor/bin/phpunit tests/ThatGroup
如果是这样,那么您可以在CircleCI工作流程中的并行作业中运行每个命令。