GitHub Actions에서 Laravel의 PHPUnit 병렬 실행
6316 단어 GitHubActions라라벨
배경
결론
github/workflows/phpunit.yml
name: PHPUnit
on:
.
.
.
#略
jobs:
test-php:
name: Test PHP
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
parallelism: [5]
id: [0,1,2,3,4]
.
.
.
#略
services:
mysql:
image: mysql:5.7
.
.
.
#略
steps:
- uses: actions/checkout@v2
- name: Setup PHP
.
.
.
#略
- name: Run Tests
run: |
find tests/ -name '*Test.php' | sort | awk "NR % ${{ matrix.parallelism }} == ${{ matrix.id }}" | xargs php ./create_multithread_phpunit_xml.php
./vendor/bin/phpunit --configuration ./ci_phpunit.xml
create_multithread_phpunit_xml.php
<?php
$baseDir = realpath('./');
$files = array_slice($argv, 1);
$xmlFileStringData = [];
foreach ($files as $file) {
$xmlFileStringData[] = "<file>{$baseDir}/{$file}</file>";
}
$testFileString = implode("\n", $xmlFileStringData);
$template = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuite name="Test Case">
{$testFileString}
</testsuite>
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
<env name="DB_DATABASE" value="test_db"/>
<env name="DB_USERNAME" value="root"/>
<env name="DB_PASSWORD" value="root"/>
</php>
</phpunit>
XML;
file_put_contents("ci_phpunit.xml", $template);
기본적으로는 GithubActions에서 phpunit 병렬 실행 를 참조할 수 있으면(자).
결과
이렇게 된다.
참고 기사
GithubActions에서 phpunit 병렬 실행
Reference
이 문제에 관하여(GitHub Actions에서 Laravel의 PHPUnit 병렬 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ProjectEuropa/items/afd871c4a58ad5b22f44텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)