我遇到了 Laravel 4 测试问题:动作/路由测试只能运行一次,并且必须是第一次测试运行。在调用断言之前,任何后续操作/路由测试都将失败并出现异常。
- 只要路线/动作测试是第一次测试运行,它们就会运行。
- 非路由/动作测试正常运行,尽管它们会导致后续路由/动作测试抛出异常
请务必注意,相关测试不会失败,它们会在触发操作时引发异常,例如:
Symfony\Component\Routing\Exception\RouteNotFoundException: Unable to generate a URL for the named route "home" as such route does not exist.
示例测试类:
class ExampleTest extends TestCase {
// passes
public function testOne()
{
$class = MyApp::ApiResponse();
$this->assertInstanceOf('\MyApp\Services\ApiResponse', $class);
}
// this fails unless moved the top of the file
public function testRoute()
{
$this->route('GET','home');
$this->assertTrue($this->client->getResponse()->isOk());
}
// passes
public function testTwo()
{
$class = MyApp::ProjectService();
$this->assertInstanceOf('\MyApp\Services\ProjectService', $class);
}
}
这是特定于实现的,一个新的 Laravel 4 项目没有出现这个问题。什么可能导致这种行为?您将如何追踪问题?