Phpunit睡眠测试持续时间错误

问题描述

我刚刚开始使用 time-sensitive Testing

基本上我有这个


<?PHP

declare(strict_types=1);

// the test that mocks the external time() function explicitly
namespace App;

use PHPUnit\Framework\TestCase;
use Symfony\Component\Stopwatch\Stopwatch;

class MyTest extends TestCase
{
    /**
     * @group time-sensitive
     */
    public function testSomething()
    {
        $stopwatch = new Stopwatch();

        $stopwatch->start('event_name');
        sleep(10);
        $duration = $stopwatch->stop('event_name')->getDuration();
        var_dump($stopwatch->getEvent('event_name'));

        $this->assertEquals(10000,$duration);
    }
}

正如您在终端中看到的结果,PHP 显然没有等待 10 秒发生,这很好,但事件的持续时间仍然为 0。

PHPUnit 8.5.14 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.3.24-(to be removed in future macOS)
Configuration: /Users/julio93/Tech/Projects/tmp/test-PHPunit/symfo5.2/PHPunit.xml

Testing src
F                                                                   1 / 1 (100%)object(Symfony\Component\Stopwatch\StopwatchEvent)#394 (6) {
  ["periods":"Symfony\Component\Stopwatch\StopwatchEvent":private]=>
  array(1) {
    [0]=>
    object(Symfony\Component\Stopwatch\StopwatchPeriod)#42 (3) {
      ["start":"Symfony\Component\Stopwatch\StopwatchPeriod":private]=>
      int(0)
      ["end":"Symfony\Component\Stopwatch\StopwatchPeriod":private]=>
      int(0)
      ["memory":"Symfony\Component\Stopwatch\StopwatchPeriod":private]=>
      int(6291456)
    }
  }
  ["origin":"Symfony\Component\Stopwatch\StopwatchEvent":private]=>
  float(1614592788623.9)
  ["category":"Symfony\Component\Stopwatch\StopwatchEvent":private]=>
  string(7) "default"
  ["morePrecision":"Symfony\Component\Stopwatch\StopwatchEvent":private]=>
  bool(false)
  ["started":"Symfony\Component\Stopwatch\StopwatchEvent":private]=>
  array(0) {
  }
  ["name":"Symfony\Component\Stopwatch\StopwatchEvent":private]=>
  string(10) "event_name"
}


Time: 123 ms,Memory: 6.00 MB

There was 1 failure:

1) App\MyTest::testSomething
Failed asserting that 0 matches expected 10000.

/Users/julio93/Tech/Projects/tmp/test-PHPunit/symfo5.2/src/App/MyTest.PHP:25

FAILURES!
Tests: 1,Assertions: 1,Failures: 1.

我基本上是在遵循文档,我试图为此启动一个新的 symfony 项目,但它仍然不起作用。 PHP 7.3 PHPUNIT 8.5 Symfony 5.2

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)