PestPHP로 Laravel 패키지 테스트
PestPHP는 단순성에 중점을 둔 테스트 프레임워크입니다. 이 게시물에서는 기능을 테스트하기 위해 Laravel 패키지 내에서 PestPHP를 사용하는 방법을 설명합니다.
설치
Laravel 패키지를 테스트하기 위해서는 testbench라는 패키지가 필요합니다. Testbench는 https://packages.tools/testbench/getting-started/introduction.html#installation에서 testbench에 대한 자세한 내용을 준비했습니다.
testbench 및 PestPHP 패키지 설치
composer require orchestra/testbench --dev
composer require pestphp/pest --dev
composer require pestphp/pest-plugin-laravel --dev
테스트 환경 설정
composer.json 내에서 테스트 디렉토리를 자동 로드합니다. 저는 Dcblogdev\PackageName을 사용하여 공급업체 사용자 이름과 저장소 이름을 나타냅니다.
"autoload": {
"psr-4": {
"Dcblogdev\\PackageName\\": "src/",
"Dcblogdev\\PackageName\\Tests\\": "tests"
}
},
이렇게 하면 패키지 루트에 테스트 디렉토리가 자동으로 로드됩니다.
다음으로 phpunit.xml이라는 파일을 만듭니다.
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
bootstrap="vendor/autoload.php"
backupGlobals="false"
backupStaticAttributes="false"
colors="true"
verbose="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
>
<coverage>
<include>
<directory suffix=".php">src/</directory>
</include>
</coverage>
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
</testsuites>
<php>
<env name="DB_CONNECTION" value="testing"/>
<env name="APP_KEY" value="base64:2fl+Ktvkfl+Fuz4Qp/A75G2RTiWVA/ZoKZvp6fiiM10="/>
</php>
</phpunit>
여기에 APP_KEY가 설정되어 있으므로 자유롭게 변경하십시오. 또한 데이터베이스 연결이 테스트로 설정됩니다. 또한 로드할 테스트/단위 내부의 테스트를 설정합니다. 필요에 따라 테스트/기능을 추가합니다.
테스트
그 안에 테스트 폴더를 만들고 Pestp.php 및 TestCase.php 파일 2개를 만듭니다.
TestCase.php
<?php
namespace Dcblogdev\PackageName\Tests;
use Orchestra\Testbench\TestCase as Orchestra;
use Dcblogdev\PackageName\PackageNameServiceProvider;
class TestCase extends Orchestra
{
protected function getPackageProviders($app)
{
return [
PackageNameServiceProvider::class,
];
}
}
그러면 패키지 서비스 공급자가 로드됩니다.
해충.php
<?php
use Dcblogdev\PackageName\Tests\TestCase;
uses(TestCase::class)->in( __DIR__ );
Pest.php에서 사용자 지정 테스트 도우미를 설정합니다. 이렇게 하면 TestCase를 로드하고 __DIR__을 사용하여 현재 테스트 디렉토리에서 테스트합니다. 이렇게 하면 테스트의 하위 폴더에서 pest를 실행할 수 있습니다. 즉, Unit 및 Feature가 가장 일반적인 폴더입니다.
다음으로 Unit inside tests라는 폴더를 만들고 DemoTest.php를 사용할 테스트 파일을 만듭니다.
테스트/단위/DemoTest.php
test('confirm environment is set to testing', function () {
expect(config('app.env'))->toBe('testing');
});
가져오기 또는 클래스가 필요하지 않습니다. 최소한의 설정으로 테스트 작성에 집중할 수 있는 Pest의 장점입니다.
여기에서 Laravel 애플리케이션에서 PestPHP 테스트를 작성하는 것과 동일한 방식으로 Pest를 사용하여 테스트를 작성할 수 있습니다.
Reference
이 문제에 관하여(PestPHP로 Laravel 패키지 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dcblog/test-laravel-packages-with-pestphp-m14텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)