繁体   English   中英

Laravel 6.x 命令测试中缺少 TestCase::artisan()

[英]Missing TestCase::artisan() in Laravel 6.x Command Test

我按照文档创建了一个非常基本的控制台命令测试:

<?php

namespace Tests\Feature;

use PHPUnit\Framework\TestCase;

class QueueJobCommandTest extends TestCase
{


    /**
     * Test a job argument is requied
     *
     * @return void
     */
    public function testNoArgumentsIsError()
    {
        $this->artisan('queue:job')
            ->expectsOutput('No job specified')
            ->assertExitCode(0);
    }
}

但是当我运行 phpunit 时出现错误:

Error: Call to undefined method Tests\\Feature\\QueueJobCommandTest::artisan()

关于为什么TestCase::artisan()未定义的任何帮助都将受到极大的赞赏。

扩展 Laravel 版本的 TestCase

use Tests\TestCase;

希望这可以帮助

您必须从 Laravel 扩展包含所有 Laravel 功能的 TestCase。 在这一点上,文档非常好。

https://laravel.com/docs/5.8/testing

<?php

namespace Tests\Unit;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $this->assertTrue(true);
    }
}

那应该可以解决您的问题。 有时我创建一个类,我可以在其中添加一些用于身份验证的特殊函数,并从该类扩展,该类从 Laravel TestCase 类扩展而来。 然后您可以在该类中添加您的自定义函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM