Easy way to build parallel sets of tests for Circle CI
This tool will create test suites for you. It's made for circle-ci but you can use it with other tools.
composer require pedrotroller/circle-parallel-tests-builder --dev
A binary file (circle-tests
) have been added to your binary directory.
You just have to create a file named circle-tests.yml
into your project root directory and follow this pattern :
"<my_test>": <weigth>
"<my_test>": <weigth>
"<my_test>": <weigth>
Where my_test
is the command to execute, and weigth
is a number representing the weigth of the execution of your command (can be the duration for exemple).
You can display suites by using the following command :
./bin/circle-tests display -t 3 # Will split your tests into 3 suites
You can launch a suite by using the following command :
./bin/circle-tests -i 0 -t 3 # -i represent the index (0 based) of the desired suite
# ./circle-tests.yml
'bin/behat --no-snippets --tags=~disabled --verbose features/api': 21
'bin/behat --no-snippets --tags=~disabled --verbose features/manager': 50
'bin/phpspec run -fpretty --verbose': 1
'bin/install dev demo': 4
'bin/install prod && app/console doctrine:schema:validate -e=prod': 2
# ./circle.yml
general: # ...
machine: # ...
dependencies: # ...
test:
override:
- bin/circle-tests run --index=$CIRCLE_NODE_INDEX --total=$CIRCLE_NODE_TOTAL:
parallel: true