Laravel phpunit没有得到正确的网址

Ben*_*ird 6 php phpunit laravel laravel-4 laravel-5

我已经将app.url配置值更改为正确的url(http://testing.local)以便在本地进行测试,但是当我运行我的phpunit测试并尝试调用()时,它正在尝试查询http://localhost而不是app.url的值.我需要做些什么才能让phpunit调用正确的路径?

我知道它实际上并没有调用url,只是像处理它一样处理它,但我似乎无法让它实际工作.它可以与testing.local直接链接/public而不是/吗?

Kor*_*las 9

要更改PHPUnit的测试URL:

转到/tests/TestCase.phpLaravel项目中.

将下一行更改为您需要的网址:

// The base URL to use while testing the application.
protected $baseUrl = 'http://newurl.com';
Run Code Online (Sandbox Code Playgroud)

完成.


Mop*_*ppo 8

如果要为测试静态指定根 URL,请将其添加到 phpunit.xml:

<env name="APP_URL" value="http://testing.local"/>
Run Code Online (Sandbox Code Playgroud)

相反,如果您想在测试期间动态更改 URL,从 Laravel 5.4 开始,该$baseUrl方法不再起作用。

此外,尝试以动态方式设置 url\Config:set('app.url', 'http://testing.local')也不起作用,因为 Laravel 似乎缓存了根 url

您可以使用以下方法动态设置自定义 URL:

\URL::forceRootUrl('http://testing.local');
Run Code Online (Sandbox Code Playgroud)


小智 -1

据我所知,Laravel 在运行 PHPUnit 时应该使用“测试”环境变量。不过,我和你有同样的问题。为了让它工作,我手动设置应用程序 URL。

$test_url = Config::get('app.url');
Run Code Online (Sandbox Code Playgroud)

希望这对遇到同样问题的人有所帮助。