Laravel 5.4 phpunit vs dusk测试Env App_Url

时间:2017-08-12 18:10:08

标签: php laravel phpunit laravel-dusk

PHPunit测试和Artisan Dusk测试都使用.env文件中的watcher.on('error', error => log(`Watcher error: ${error}`))

但是有一些奇怪的东西,也许是因为我的设置,但我不知道,它是疯了。

我有Xampp,我的项目在APP_URL

当我有

localhost/forum/

我的单元测试没问题。

e.g。

APP_URL=http://localhost

一切都很好。

就像laravel知道它是$response = $this->get('sekcja/sadsadsadsadas'); $response->assertStatus(200); 但是在http://localhost上进行测试,因为有这个项目并在http://localhost/forum/上查看

但是...

黄昏看错了。

Dusk正在加载我本地主机欢迎XAMPP的页面。 不是http://localhost/forum/sekcja/sadsadsadsadas

上的项目页面

然后我将ENV更改为localhost/forum/

效果很好,黄昏测试很好......

然而,你知道吗?

我的PHPunit测试不好,他们不再工作了。

他们不能再找到APP_URL=http://localhost/forum/

所以我的问题是

这里发生了什么?在我为黄昏阅读的文档中,我必须像我设置的那样设置它,但是我的PHPunit测试被打破了。为什么?如果phpunit和dusk测试都使用相同的变量,为什么他们想要不同的值呢?那有点傻。

1 个答案:

答案 0 :(得分:0)

您可以专门为黄昏创建单独的.env文件。

正如文档中所述:

  

运行测试时,Dusk会备份.env文件并重命名   黄昏环境.env。一旦测试完成,你的.env   文件将被恢复。

这可以帮助您解决问题。

https://laravel.com/docs/5.4/dusk/#environment-handling