要更改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)
完成.
如果要为测试静态指定根 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)
希望这对遇到同样问题的人有所帮助。