pin*_*hic 10 php configuration phpunit bootstrapping
我们在项目中使用PHPUnit并使用a phpunit.xml确保backupGlobals关闭的东西.
为了进一步确保包含路径已设置并且自动加载处于活动状态,我们还会对测试引导进行级联.也就是说,每个测试和alltests-suite都有一个require_once(__DIR__ . '/../bootstrap.php');顶部,一直到基本文件夹级别,它显然读取require_once(__DIR__ . '/bootstrap.php');,并且实际的引导文件驻留.
基本上,我们的测试是自主的.您可以AllTests.php在任何文件夹中随意调用任何文件夹*Test.php,它们将以正确的配置运行.
除了没有." 等一下."
只有当我们强制我们的开发人员使用phpunit --configuration=path/to/phpunit.xml或者他们在文件夹中phpunit.xml时才会这样(因此PHPUnit在执行时将其从当前工作目录中拉出来).
有时,这使得很难确定为什么一台开发人员的计算机上的测试正在破坏,以及为什么他们在另一台计算机上运行.它只是忘记了引导程序不是我们需要拥有相同测试环境的唯一东西.请记住,因为如果你尝试过,你不能忘记引导程序,因为它在测试中本身,忘记了其他设置,特别是通常是可选的那些(如果你在文件夹中phpunit.xml,它会被自动拉出),简单.
事实上 - 它发生了几次.
有没有一种方法可以提供phpunit.xml在运行的测试文件中使用的方法,例如在我们方便的无处不在的引导文件中,而不是事先将它提供给PHPUnit,是通过命令行开关还是在其目录中?
粗略地看一下代码表明答案是否定的 - 配置良好且真正似乎在测试文件被拉出之前加载:
[PHPUnit/TextUI/Command.php]
...
if (isset($this->arguments['configuration'])) {
$configuration = PHPUnit_Util_Configuration::getInstance(
$this->arguments['configuration']
);
$phpunit = $configuration->getPHPUnitConfiguration();
...
Run Code Online (Sandbox Code Playgroud)
考虑到配置可以包含测试白名单或黑名单,这确实有一定意义.
实际上,在测试引导程序本身中加载测试过滤器是没有意义的,因此这是窗口中可能配置的一半,但PHPUnit的实际行为标志...
[sample of part of our phpunit.xml]
<phpunit
backupGlobals="false"
backupStaticAttributes="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
syntaxCheck="false"
processIsolation="false"
colors="true">
Run Code Online (Sandbox Code Playgroud)
...也许除了'colors'之外,我认为测试本身应该可以在某种程度上决定.
不可否认,现在我很高兴知道我是否可以backupGlobals="false"从bootstrap文件中教授PHPUnit ,如果有人知道的话.
(如果没有结果,我将追求的实际答案可能是复制phpunit.xml到所有子文件夹.我想避免该解决方案,因为它创建了冗余副本,如果我们选择更改设置...是的,哎哟!)
Ant*_*nna 10
直接回答:不,你不能这样做.
更长的故事 - 通过改变开发人员的习惯可以更好地解决这类问题.
我们这样做:
这样做意味着放弃从任何目录启动PHPUnit的自由,但说实话 - 我觉得这根本不是亏本.
收益更大:管家代码的数量减少,开发人员不会忘记任何事情,因此结果是一致的.
我的解决方案是添加一个 bash 函数
function phpu ()
{
phpunit --colors --bootstrap ~/path/to/bootstrap.php "$@";
}
Run Code Online (Sandbox Code Playgroud)
然后将其添加到所有 dev .bashrc 文件中,他们可以切换到使用它。
我们喜欢从这里打电话给他们,vim所以我必须将其添加到.vimrc:set shellcmdflag=-ic
然后添加nmap ;t :! phpu %运行当前所在的测试文件。
| 归档时间: |
|
| 查看次数: |
10446 次 |
| 最近记录: |