3

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

在我的 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?

4

2 回答 2

10

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

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

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


}
于 2013-05-30T15:08:02.693 回答
2

最好用

public function setUp()
{   
    parent::setUp(); //this is reqired 

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

这在文档中有所描述

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

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

于 2015-09-18T09:16:21.283 回答