【问题标题】:Artisan::call() in Test failing测试失败中的 Artisan::call()
【发布时间】:2013-05-25 07:10:39
【问题描述】:

我需要在运行测试之前清理数据库,否则我会收到关于重复信息的奇怪错误。

在我的 PostTest.php 文件中,我创建了一个设置方法

public function setUp()
{
    Artisan::call('migrate:refresh');
}

phpunit 测试然后说:

PHP Fatal error:  Class 'Artisan' not found in C:\wamp\www\squigglemd\app\tests\PostTest.php on line 11

我也试过了:

\Artisan::call('migrate:refresh');

如何从我的测试中调用 Artisan?

【问题讨论】:

  • 你应该简单地调用parent::setUp(),因为你覆盖了这个方法。

标签: phpunit laravel laravel-4


【解决方案1】:

以下是当 Artisan::call 不起作用时如何从测试函数中调用 artisan。

    public function setUp()
{
    parent::setUp();

    $app->make('artisan')->call('migrate:refresh');
    //Artisan::call('migrate:refresh'); // also works now too


}

【讨论】:

    【解决方案2】:

    最好用

    public function setUp()
    {   
        parent::setUp(); //this is reqired 
    
            Artisan::call('migrate:refresh');
    }
    

    这在文档中有描述

    注意:如果您在测试类中定义自己的 setUp 方法,请务必调用 parent::setUp。

    见http://laravel.com/docs/5.1/testing#introduction

    【讨论】:

    • 使用外观是一样的。 (更正了父设置...这也是 laravel 4 问题)
    猜你喜欢
    • 2015-05-16
    • 2016-08-31
    • 2016-05-09
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多