lightspeedphp / lightspeed
通过在节点间拆分测试来加速测试运行。
dev-main
2023-10-02 22:25 UTC
Requires
- php: ^7.3 || ^8.0
- phpunit/phpunit: ^9.5
- symfony/polyfill-php80: ^1.28
- symfony/process: ^5.0 || ^6.0
Requires (Dev)
- illuminate/support: ^9.0
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^7.32
This package is auto-updated.
Last update: 2024-08-31 00:37:39 UTC
README
安装
使用composer安装
composer require --dev lightspeedphp/lightspeed
用法
安装完成后,您可以立即运行 php vendor/bin/lightspeed 来执行测试。如果您已安装PHPUnit或Pest,它将代理到它们。
Lightspeed最适合在CI中使用,它可以同时在多台机器上运行以并行执行测试。目前它支持GitHub Actions和Buildkite。
GitHub Actions
这是一个示例工作流程文件,用于并行执行测试。请注意,您必须手动设置环境变量,以便正确地将测试拆分到各个作业之间。
name: Demo on: ['push'] jobs: ci: runs-on: ubuntu-latest strategy: matrix: node_count: [3] node_index: [0, 1, 2] name: Demo steps: - name: Checkout uses: actions/checkout@v3 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 8.0 tools: composer:v2 coverage: none - name: Install PHP dependencies run: composer update --no-interaction --no-progress - name: Tests (${{ matrix.node_index}}) env: LIGHTSPEED_NODE_COUNT: ${{ matrix.node_count }} LIGHTSPEED_NODE_INDEX: ${{ matrix.node_index }} run: php vendor/bin/lightspeed --colors=always
Buildkite
通过设置parallelism命令步骤属性,Buildkite原生支持。您可以使用尽可能多的代理来并行化测试步骤,以最小化测试时间。
steps: - label: ':php: Run tests' commands: - composer update --no-interaction --no-progress - php vendor/bin/lightspeed parallelism: 3 plugins: - docker#v4.14.0: image: composer:2 propagate-environment: true
许可证
Lightspeed受BSD 4-Clause许可证的许可。