【发布时间】:2018-11-13 11:22:43
【问题描述】:
我的 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,如here 记录的那样,但我需要按顺序执行直到Run tests 的步骤。然后我将有多个运行测试步骤来访问每个测试文件夹。
有没有办法做到这一点?
【问题讨论】:
-
首先,
parallelism不是必需的。你只需要定义多个job(你只有一个build-job),并且拆分phpunit的测试范围。
标签: phpunit circleci circleci-2.0