Cakephp phpunit.xml黑名单在测试时被忽略

时间:2017-04-28 12:52:19

标签: cakephp phpunit cakephp-2.0 cakephp-2.6

当我在cakephp 2.6上运行我的测试时,会包含/plugin文件夹测试。我尝试在phpunit.xml中设置黑名单选项,测试使用该文件,但仍会包含插件。

我正在使用的命令以及命令promt

中的以下文本
$ Console/cake test app All --stderr --configuration phpunit.xml

Welcome to CakePHP v2.6.13 Console
---------------------------------------------------------------
App : site
Path: /var/www/MYPAGE/site/
---------------------------------------------------------------
CakePHP Test Shell
---------------------------------------------------------------
PHPUnit 3.7.38 by Sebastian Bergmann.

Configuration read from /var/www/MYPAGE/phpunit.xml

我的phpunit.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<phpunit>
    <php>
        <ini name="memory_limit" value="2048M" />
    </php>
    <filter>
        <blacklist>
            <directory suffix=".php">./plugins</directory>
            <directory suffix=".ctp">./plugins</directory>
            <directory suffix=".php">./vendor</directory>
        </blacklist>
    </filter>
</phpunit>

如您所见,我想忽略app / src文件夹旁边的vendorplugin文件夹中的测试。

我也试过没有配置选项

$ Console/cake test App all --stderr

自动调用的插件是:

/插件
--Authenticate
--Crud
--DebugKit
- ..
/ SRC

1 个答案:

答案 0 :(得分:0)

<filter>部分仅用于过滤代码覆盖率分析中的文件/位置。

如果要缩小PHPUnit配置文件中的测试范围,那么您需要相应地配置<testsuites>。但是,正如您所知,在CakePHP 2.x中,您不直接运行PHPUnit,而是使用CakePHP测试shell,这需要以编程方式创建测试套件 - 这似乎存在于您的设置中,否则应传递all导致错误(至少是最新2.x中的情况)。

从文档中获取,只测试您的应用程序测试的测试套件可能如下所示:

// app/Test/Case/AllModelTest.php

class AllTestsTest extends CakeTestSuite {
    public static function suite() {
        $suite = new CakeTestSuite('All tests');
        $suite->addTestDirectoryRecursive(TESTS . 'Case');
        return $suite;
    }
}

你可以像以下一样运行它:

Console/cake test app AllTests

另见