wyrihaximus / react-phpunit-run-tests-in-fiber
在fiber中运行所有测试的特质
2.0.0
2024-04-01 13:35 UTC
Requires
- php: ^8.2
- phpunit/phpunit: ^10.5
- react/async: ^4.2.0
- react/event-loop: ^1.5.0
- react/promise: ^3.1
Requires (Dev)
- react/promise-timer: ^1.10.0
- wyrihaximus/test-utilities: ^6.0
Conflicts
- phpunit/phpunit: <10
This package is auto-updated.
Last update: 2024-09-10 22:20:08 UTC
README
安装
要通过Composer安装,使用以下命令,它将自动检测最新版本并将其绑定到^
。
composer require wyrihaximus/react-phpunit-run-tests-in-fiber
用法
<?php declare(strict_types=1); use PHPUnit\Framework\TestCase; use React\Promise\Promise; use WyriHaximus\React\PHPUnit\RunTestsInFibersTrait; use function React\Async\await; final class SomeTest extends TestCase { use RunTestsInFibersTrait; /** * @test */ public function happyFlow() { self::assertTrue(await(new Promise(static function (callable $resolve): void { $resolve(true); }))); } }
超时
此包支持在达到超时后标记测试失败。请注意,这不会停止fiber中正在运行的任何内容,其余的运行或清理循环,因为我们不能在fiber开始后杀死正在运行的fiber。在测试和PHPUnit处理在fiber中运行测试的范围之间抛出异常。这超出了测试的控制。
<?php declare(strict_types=1); use PHPUnit\Framework\TestCase; use React\Promise\Promise; use WyriHaximus\React\PHPUnit\RunTestsInFibersTrait; use WyriHaximus\React\PHPUnit\TimeOut; use function React\Async\await; #[TimeOut(30)] final class SomeTest extends TestCase { use RunTestsInFibersTrait; /** * @test */ #[TimeOut(0.1)] public function happyFlow() { self::assertTrue(await(new Promise(static function (callable $resolve): void { $resolve(true); }))); } }
许可证
MIT许可证(MIT)
版权所有(c)2024 Cees-Jan Kiewiet
特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向提供软件的人授予此类权利,但受以下条件约束
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论这些责任是根据合同、侵权或其他方式产生的,与软件或软件的使用或其他交易有关。