lightspeedphp/lightspeed

通过在节点间拆分测试来加速测试运行。

dev-main 2023-10-02 22:25 UTC

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许可证的许可。