[英]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.