【发布时间】:2014-01-05 02:09:26
【问题描述】:
我正在将一个 laravel 3 站点升级到 laravel 4,并在进行过程中为它编写单元测试。效果很好,到目前为止,我在大约 20 个测试用例中进行了大约 300 个测试,并且每个测试都可以单独运行。直到最近,它们都可以很好地一起运行,但我似乎已经越过了某个阈值,在没有以下错误的情况下我无法一次性运行更多测试:
PHP Fatal error: Illuminate\Filesystem\Filesystem::getRequire(): Failed opening required '/Users/Me/Desktop/Repos/API-2/app/config/api.php' (include_path='.:/Applications/MAMP/bin/php/php5.4.4/lib/php') in /Users/Me/Desktop/Repos/API-2/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php on line 53
几乎每一个测试都使用了未能包含的配置文件,并且由于所有测试用例在单独运行时都能正常工作,我不明白为什么只有当它们一起运行时才会发生此错误。
此错误显示测试接近完成时,所以我的第一个问题是内存或执行时间限制,我尝试在 php.ini 中将它们加倍,但我认为它们无论如何都不适用于 CLI?我不确定还有什么可能导致这样的问题,只有当所有这些都一起运行时才会发生?
编辑
没有人知道是什么原因造成的吗? 目前我能做的最好的运行所有测试是下面的 bash 脚本,然后滚动结果页面寻找错误......
#!/bin/bash
for f in app/tests/*Test.php ; do phpunit "$f" ; done
【问题讨论】:
-
您是否尝试过使用
--process-isolation选项? phpunit.de/manual/3.7/en/textui.html -
我假设我会执行
phpunit --process-isolation?我不确定我是否做错了,因为当我这样做时每个测试都失败了:/Constant LARAVEL_START already defined -
编辑项目目录下的
phpunit.xml,设置值为true。 -
不幸的是,当我这样做时,每次测试都会出现同样的错误。
-
只是一个快速的,你是否 100% 确定你要找的是 api.php 而不是 app.php?
标签: php unit-testing laravel-4