在测试期间调用 null 上的成员函数 connection()

Call to a member function connection() on null during tests

我想做性能测试,所以我考虑在我的测试文件中使用 PHPUnit_Framework_TestCase 而不是 TestCase。我正在牺牲 http 请求测试,但我至少想使用 Laravel 的一些组件(比如它的提供程序等)。

这是它的样子:

<?php

class ChatTest extends PHPUnit_Framework_TestCase
{
        /** @test */
    public function chat_can_be_accepted()
    {
        $this->chat->setStatus(Chat::CHAT_STATUS_WAIT_MASTER);
        $this->chat->accept();

        $this->assertEquals(Chat::CHAT_STATUS_WAIT_CONFIRM, $this->chat->getStatus());
    }
}

我说 Call to a member function connection() on null 时出错。 setStatus 在这个例子中实际上使用了 Laravel 内部构件(就像需要应用程序的关系一样简单)。

我已经尝试切换每个提供程序,但似乎代码甚至没有通过提供程序。还尝试更改 PHP 版本或扩展。

我正在回答我自己的问题以备将来提醒,也因为我从未在其他任何地方找到这个答案。

此时我使用的是 PHPStorm,它在默认情况下启动测试时不会自动加载 phpunit.xml 文件。

文件中的那一行启动 Laravel(也适用于 Lumen)以及测试:bootstrap="bootstrap/app.php".

即使不使用他们的测试框架,也需要使用 Laravel 内部结构。

要在 PHPStorm 中使用它:

要在 CLI 中使用它:

phpunit --configuration phpunit.xml