【发布时间】:2014-03-25 10:05:16
【问题描述】:
我正在尝试使用codeception 进行验收测试。
我的一项测试有以下内容:
<?php
use Codeception\Util\Stub;
class SomeTest extends \Codeception\TestCase\Test
{
protected $webGuy;
/**
* @test
*/
public function incorrect_login_should_redirect_back()
{
$I = $this->webGuy;
$I->wantTo('fail at logging in');
$I->amOnPage('/'); // <-- This is the line that is failing
$I->fillField('email','info@tntstudio.hr');
$I->fillField('password','pass');
$I->click('Login');
$I->see('email', 'input');
$I->seeCurrentUrlEquals('/login');
}
}
最初测试运行正常,但是在将Laravel4 添加到acceptance.suite.yml 文件并运行build 之后,测试现在失败并显示以下内容:
1) SomeTest::incorrect_login_should_redirect_back
Symfony\Component\HttpKernel\Exception\NotFoundHttpException:
#1 /Applications/MAMP/htdocs/hired/vendor/laravel/framework/src/Illuminate/Routing/Router.php:1021
#2 /Applications/MAMP/htdocs/hired/vendor/laravel/framework/src/Illuminate/Routing/Router.php:989
#3 /Applications/MAMP/htdocs/hired/vendor/laravel/framework/src/Illuminate/Routing/Router.php:968
#4 /Applications/MAMP/htdocs/hired/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:738
#5 /Applications/MAMP/htdocs/hired/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:708
#6 /Applications/MAMP/htdocs/hired/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Client.php:81
#7 /Applications/MAMP/htdocs/hired/vendor/symfony/browser-kit/Symfony/Component/BrowserKit/Client.php:325
#8 /Applications/MAMP/htdocs/hired/app/tests/acceptance/WebGuy.php:476
#9 /Applications/MAMP/htdocs/hired/app/tests/acceptance/SomeTest.php:16
我正在使用 vagrant 在虚拟环境中运行我的应用程序,http://localhost:3030/
我已将此设置为acceptance.suite.yml 中PhpBrowser 配置的网址,如下所示:
class_name: WebGuy
modules:
enabled:
- PhpBrowser
- WebHelper
- Laravel4
config:
PhpBrowser:
url: 'http://localhost:3030/'
我想知道是否有其他人遇到过这个问题,或者对如何解决这个问题有任何想法,我已经为此烦恼了好几个小时。
【问题讨论】:
-
我运行了与您类似的设置,但在我的验收套件中,我只启用了 PhpBrowser、WebHelper 和 DB。我不使用 Laravel4 模块,您需要它们进行验收测试吗?
-
我自己需要它们,毫无疑问,不用 Laravel4 模块也可以逃脱,但我想使用它提供的方法。
-
也许在路由文件上放一个调试日志,看看它实际上“试图”命中哪个路由来生成http异常?我认为您获得 symfony 异常的事实意味着您至少正在通过测试“命中”您的应用程序?
-
您的
config/app/app.php文件是否设置了正确的URL?您可能会发现您还需要带有:3030的完整 URL。 -
@alexrussell 是的,我试过了,没有帮助
标签: php unit-testing laravel laravel-4 codeception