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
Смотрите также