wyrihaximus/react-phpunit-run-tests-in-fiber

在fiber中运行所有测试的特质

2.0.0 2024-04-01 13:35 UTC

This package is auto-updated.

Last update: 2024-09-10 22:20:08 UTC


README

Continuous Integration Latest Stable Version Total Downloads Type Coverage License

安装

要通过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

特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向提供软件的人授予此类权利,但受以下条件约束

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论这些责任是根据合同、侵权或其他方式产生的,与软件或软件的使用或其他交易有关。