使用Behat 3和Laravel测试API时,我遇到了一个令人困惑的问题。
它似乎没有使用“测试”环境数据库(在我的例子中是一个sqlite内存数据库).但只有一些时候。
我在to /database.php文件中放置了一条日志消息,以查看它何时加载。在运行Behat时,我确实看到了日志消息。
但是运行Behat特性会将行添加到我的开发数据库中--而且我的一些测试也因为同样的原因而失败了。
我的phpunit测试运行良好,不更改dev数据库。
在behat.yml中有什么东西我错过了吗?
编辑:我看到了问题-我使用口吻测试API,而Behat的设置功能正在测试env,一旦口香糖发挥作用,应用程序不知道它在测试env。所以我要么在测试env中找到告诉应用程序in的方法,要么告诉behat使用开发env。
发布于 2015-01-12 16:55:17
在您的FeatureContext.php中添加以下方法:
/**
* @BeforeSuite
*/
public static function bootstrapLaravel()
{
$unitTesting = true;
$testEnvironment = 'testing';
require __DIR__ . '/../../../bootstrap/start.php'; // adjust this to right path. This will work if FeatureContext.php is in app/tests/acceptance
}这将使用测试数据库并包括Laravel (因此您也可以使用您的模型)。
https://stackoverflow.com/questions/25609579
复制相似问题