Cakephp phpunit.xml черный список игнорируется во время тестирования

Когда я запускаю свои тесты на cakephp 2.6, /plugin папочные тесты включаются. Я пытался установить опцию черного списка в phpunit.xml и тест использует файл, но плагины все равно будут включены.

Команда, которую я использую, и следующий текст из командной строки

$ 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>

Как видите, я бы хотел проигнорировать тесты vendor а также plugin папка рядом с папкой app/src.

Я тоже пробовал без опции конфигурации

$ Console/cake test App all --stderr

Подключаемые модули, вызываемые автоматически:

/ плагины
--Authenticate
--Crud
--DebugKit
-..
/ SRC

1 ответ

<filter> Раздел предназначен исключительно для фильтрации файлов / местоположений из анализа покрытия кода.

Если вы хотите сузить то, что тестируется в файле конфигурации PHPUnit, то вам нужно будет настроить <testsuites> соответственно. Однако, как вы знаете, в CakePHP 2.x вы не запускаете PHPUnit напрямую, а используете тестовую оболочку CakePHP, и для этого требуется программно создавать наборы тестов - которые, кажется, существуют в вашей установке, в противном случае передача 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

Смотрите также

Другие вопросы по тегам