phpyh / psalm-tester
通过 phpt 文件测试 Psalm!
0.1.0
2024-01-24 17:42 UTC
Requires
- php: ^8.1
- composer-runtime-api: ^2.1
- phpunit/phpunit: ^9 || ^10
Requires (Dev)
- ergebnis/composer-normalize: ^2.41.1
- friendsofphp/php-cs-fixer: ^3.48.0
- icanhazstring/composer-unused: ^0.8.11
- maglnet/composer-require-checker: ^4.7.1
- phpyh/coding-standard: ^2.6.0
- psalm/plugin-phpunit: ^0.18.4
- rector/rector: ^0.19.2
- vimeo/psalm: ^5.20.0
README
通过 phpt 文件测试 Psalm!
安装
composer require --dev phpyh/psalm-tester
基本用法
1. 编写一个 phpt 格式的测试
tests/array_values.phpt
--FILE-- <?php /** @psalm-trace $_list */ $_list = array_values(['a' => 1, 'b' => 2]); --EXPECT-- Trace on line 9: $_list: non-empty-list<1|2>
为了避免硬编码错误详情,可以使用 EXPECTF
--EXPECTF-- Trace on line %d: $_list: non-empty-list<%s>
2. 添加一个测试套件
tests/PsalmTest.php
<?php use PHPUnit\Framework\Attributes\TestWith; use PHPUnit\Framework\TestCase; use PHPyh\PsalmTester\PsalmTester; use PHPyh\PsalmTester\StaticAnalysisTest; final class PsalmTest extends TestCase { private ?PsalmTester $psalmTester = null; #[TestWith([__DIR__ . '/array_values.phpt'])] public function testPhptFiles(string $phptFile): void { $this->psalmTester ??= PsalmTester::create(); $this->psalmTester->test(StaticAnalysisTest::fromPhptFile($phptFile)); } }
向 Psalm 传递不同的参数
默认情况下,PsalmTester
使用 --no-progress --no-diff --config=
psalm.xml 运行 Psalm。
您可以在 PsalmTester
级别更改此设置
use PHPyh\PsalmTester\PsalmTester; PsalmTester::create( defaultArguments: '--no-progress --no-cache --config=my_default_config.xml', );
或使用 --ARGS--
部分为每个测试单独设置
--ARGS-- --no-progress --config=my_special_config.xml --FILE-- ... --EXPECT-- ...