В настоящее время я работаю с sfPhpUnitPlugin по проекту sf 1.4, и перед вами стоит проблема с тестированием плагина.Как можно иметь два набора тестов, связанных с различными приложениями в одном и том же плагине?
У меня есть плагин, который можно использовать в нескольких приложениях, и я хотел бы иметь набор тестов для каждого приложения. Как я могу организовать свои тесты, чтобы я мог легко сопоставлять приборы и тесты с конкретным приложением?
Мои апартаменты являются копиями этого шаблона, который поставляется с sfPhpunitPlugin:
<?php
class {className} extends sfBasePhpunitTestSuite
implements sfPhpunitContextInitilizerInterface
{
/**
* Dev hook for custom "setUp" stuff
*/
protected function _start()
{
$this->_initFilters();
}
/**
* Dev hook for custom "tearDown" stuff
*/
protected function _end()
{
}
protected function _initFilters()
{
$filters = sfConfig::get('app_sfPhpunitPlugin_filter', array());
foreach ($filters as $filter) {
PHPUnit_Util_Filter::addDirectoryToFilter($filter['path'], $filter['ext']);
}
}
public function getApplication()
{
return '{application}';
}
}
Я полагаю, я должен добавить что-то подобное в app.yml каждого приложения:
testunit:
sfPhpunitPlugin:
filter:
- {path: 'backend', ext: '.php'}
, но мне трудно определить, как будет выглядеть путь к ключу, я под впечатлением, что это должен быть полный путь, потому что include_path не содержит путь к плагину, который я тестирую, когда вызывается addDirectoryToFilter()
. Любые советы? Кто-нибудь еще это сделал?
Является ли приложение определенным методом getApplication()? С вашим методом, конфигурация, которую я добавил в моем приложении (см. Вопрос), все еще нужна или нет? – greg0ire
Функциональность фильтров не связана с настройкой контекста приложения. В следующем выпуске плагина я удалю его из-за того, что поведение фильтра было изменено в версии phpunit 3.5. –
App.yml больше не используется для конфигурации плагина, а плагин имеет свой собственный phpunit.yml –