PHPUnit配置(phpunit.xml) – 加载在引导?

前端之家收集整理的这篇文章主要介绍了PHPUnit配置(phpunit.xml) – 加载在引导?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
情况

我们在我们的项目中使用PHPUnit,并使用PHPunit.xml来确保关闭backupGlobals.

为了进一步确保包含路径被设置并且自动加载是活动的,我们也级联我们的测试引导.也就是说,每个测试和alltests-suite都有一个require_once(__ DIR__.’/../bootstrap.PHP’);在顶部,一直到基本文件夹级别,它显然读取require_once(__ DIR__./bootstrap.PHP’);并且实际的引导文件位于.

基本上,我们的测试是自主的.您可以在任何文件夹和任何* Test.PHP本身中调用任何AllTests.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();
    ...

这样做有一定意义,因为配置可以包含测试白名单或黑名单.

真的,在测试引导本身加载测试过滤器是没有意义的,所以这是Windows的潜在配置的一半,但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">

可能除了“颜色”之外,还会使我成为测试本身应该在一定程度上决定的东西.

安慰奖…

诚然,现在我很高兴只要知道我是否可以从引导文件中教导PHPUnit backupGlobals =“false”,如果有人知道某种方式.

(如果没有结果,我将追求的实际答案可能是将PHPunit.xml复制到所有子文件夹中,我想避免这种解决方案,因为它创建了冗余副本,如果我们选择更改设置…是啊,哎哟!)

直接回答:不,你不能这样做.

更长的故事 – 通过改变开发者的习惯,更好地解决了这种问题.

这是我们做的:

>所有开发人员总是从测试根目录运行测试,该目录具有唯一的PHPunit.xml,其中包含所有必要的配置,包括引导,它设置一个类自动加载程序.
>我们没有这样的测试套件,测试使用目录分组,没有AllTests.PHP在任何地方,因为它不是必需的. PHPUnit可以使用目录的名称,并在其中运行所有测试.
>它仍然可以运行任何单个测试通过给它一个路径或整个测试(通过给目录的路径).它只需要从测试根目录完成,或者它不工作.

这样做意味着放弃从任何目录启动PHPUnit的自由,但说实话,我根本不觉得这是一个亏损.

收益更大:内务代码数量减少,开发人员不能忘记任何事情,因此结果是一致的.

猜你在找的PHP相关文章