Roc*_*ice 10 php testing phpunit integration-testing laravel
我正在尝试为应用程序编写一些测试.我在MAMP上设置了服务器,访问dev.myappnamehere.com.
当我运行测试(基于Laracasts Integrated)时,它会失败,因为它正在寻找路线
http://localhost/p/profile
Run Code Online (Sandbox Code Playgroud)
但它需要做的是
http://dev.myappnamehere/p/profile
Run Code Online (Sandbox Code Playgroud)
我怎样才能更改它,以便它不会默认寻找localhost而是转到正确的路径?
我试图在测试中改变这一点,但无处可去,我无法通过谷歌搜索找到答案.
<?php
use Laracasts\Integrated\Extensions\Laravel as IntegrationTest;
use Laracests\TestDummy\Factory as TestDummy;
class ExampleTest extends TestCase {
/**
* A basic functional test example.
*
* @return void
*/
public function testBasicExample()
{
$this->visit('/')
->see('Login')
->type('example@example.com', 'email')
->type('password', 'password')
->press('Login')
->seePageIs('/p/profile');
}
}
Run Code Online (Sandbox Code Playgroud)
从Laravel 5.4开始,该$baseUrl方法似乎不再适用
此外,试图设置url dinamically \Config:set('app.url', 'http://dev.myappnamehere')也不起作用,因为似乎Laravel缓存根URL
设置自定义根URL的方法是:
\URL::forceRootUrl('http://dev.myappnamehere');
Run Code Online (Sandbox Code Playgroud)
所以在我问到我偶然发现答案后不久.在
LaravelTestCase.php
Run Code Online (Sandbox Code Playgroud)
有一个叫做的函数
baseUrl()
Run Code Online (Sandbox Code Playgroud)
它设置了它寻找的网址.一旦我改变它,它看起来在正确的位置.该文件是我加载的laracast测试的一部分.
对于Laravel 5,在tests目录中应该有一个名为的文件TestCase.php.在该文件中是一个属性$baseUrl.将值更新为您想要的网址.例如改变
protected $baseUrl = 'http://localhost';
Run Code Online (Sandbox Code Playgroud)
至
protected $baseUrl = 'http://dev.myappnamehere';
Run Code Online (Sandbox Code Playgroud)