FuelPHP1.9 にPHPUnitをインストール
- composerで
phpunit/phpunitをインストール(12以上)- composer.jsonに追記
composer.json"phpunit/phpunit": "*"
PHP8.4なら13になります
2. 追加php composer.phar update --dry-run -
packages\oil\config\oil.phpをapp/config/oil.phpへコピー -
core\phpunit.xmlをapp/phpunit.xmlへコピ― -
app/config/oil.phpを修正
oil.php
return [
'phpunit' => [
// vendor配下のオートローダー
'autoload_path' => VENDORPATH . 'autoload.php',
// vendor配下のphpunit
'binary_path' => VENDORPATH . 'bin/phpunit',
],
];
VENDORPATHはFuelPHPで定義されています
5. app/phpunit.xmlを変更
phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true" stopOnFailure="false" bootstrap="../core/bootstrap_phpunit.php">
<php>
<server name="doc_root" value="../../"/>
<server name="app_path" value="xxx"/>
<server name="core_path" value="xxx"/>
<server name="package_path" value="xxx"/>
<server name="vendor_path" value="xxx"/>
<server name="FUEL_ENV" value="xxx"/>
</php>
<testsuites>
<testsuite name="app">
<directory suffix=".php">../app/tests</directory>
</testsuite>
</testsuites>
</phpunit>
coreなどの不要な設定を削除
6. app/tests/配下にテストコードを記載
testdebug.php
<?php
declare(strict_types=1);
namespace Tests\Model;
use PHPUnit\Framework\Attributes\Group;
use PHPUnit\Framework\Attributes\Test;
use TestCase;
/**
* tests.
*/
#[Group('model')]
class TestDebug extends TestCase
{
/**
* デフォルトテスト.
*/
#[Test]
public function testFoo(): void
{
$this->assertEquals(0, 0);
}
}
Groupを使用すると --group で指定が出来るようになります
メソッド名のprefixはtestにしてください
7. 実行
# 全て
php oil test
# modelグループのみ
php oil test --group=model
oilで phpunitの実行コマンド文字列を生成しているだけになりますので、直接phpunitを実行していただいて問題はありません。