【发布时间】:2015-09-25 14:08:48
【问题描述】:
我已经创建了一个测试数据库环境如下:
return array(
'default' => 'sqlite',
'connections' => array(
'sqlite' => array(
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => ''
),
)
);
当我在我的 setUp 函数中初始化我的数据库时,这一切似乎都可以正常工作:
Mail::pretend(true);
Artisan::call('migrate');
$this->seed();
任何直接在我的测试中直接在我的测试类中的查询都会返回我所期望的结果,但是如果我在我的模型上调用一个对它使用我的“实时”的数据库执行任何操作的函数(我在一个 vagrant dev 中运行它服务器所以没有破坏任何东西的风险)数据库而不是我的测试数据库。我是否需要进一步更改我的配置以确保它正在使用我的测试数据库?还是我需要以特殊方式实例化我的模型?
一个不起作用的例子。在我的测试中:
// gets the correct company
$comp = Companies::find(1);
// gets results from wrong database
$comp->quotesAndOrders();
quotesAndOrders 对 hasMany 关系(订单)进行简单查询
$this->orders()->get();
【问题讨论】:
-
这是 Laravel 4,抱歉。我以为我把它放了,但我只把它放在标签里。更新了标题以使其更清晰
-
哦,在那种情况下,我已经删除了重复的投票,对此感到抱歉
标签: php laravel laravel-4 phpunit