модульное тестирование с помощью symfony + doctrine + PHPUnit - PullRequest
1 голос
/ 10 сентября 2009

Я работаю с Symfony + Doctrine + PHPUnit, с IDE NetBeans. Вот мой текущий подход к модульному тестированию.

  • Функция setUp () загружает тестовые приборы из файлов .yml
  • Функция tearDown () удаляет все данные из моделей. это делается путем зацикливания массива имен всех моих моделей на что-то вроде Doctrine_Query :: delete ($ modelName) -> execute ()

Кажется, это работает, но мне просто любопытно, если это правильный способ сделать это. По сути, я очищаю все таблицы после каждой тестовой функции, определяя модели / таблицы, из которых нужно «удалить все».

Q1: Мне просто интересно, если это правильный путь ... В2: это хорошо работает в IDE Netbeans, но, похоже, не работает через "./symfony test: unit". я что-то упустил или CLI просто работает с известью?

Ответы [ 3 ]

1 голос
/ 16 сентября 2009

. / Symfony test: модуль запускает собственный набор тестов symfonys, который использует lime в качестве среды тестирования, а не phpUnit.

И netbeans использует phpUnit для поддержки встроенного тестирования. надеюсь, NetBeans добавит тестовый пакет для набора тестов Symfony в свой входящий пакет Symfony в NetBeans 6,8

0 голосов
/ 19 июля 2010

Я пытаюсь это внешне с PHPUnit, без плагина. Я использую Доктрину. У меня довольно проблемы. Если я запускаю ОДИН PHPUnit (написанный мной) метод tes, это здорово. Второй, не очень хороший. Это может быть способ, которым я использую Доктрину. Кажется, что даже если я удаляю все из базы данных (между вызовами метода PHPUnit) и восстанавливаю файл фикстур, все в setup (), DOCTRINE запоминает предыдущие значения.

Не важно, сбрасываю ли я соединение, сбрасываю родительский объект, который ошибочно 'запоминается', refreshRelated () и т. Д., Я все еще получаю старые значения, когда выполняю первое присваивание отношениям.

$ parent = new ParentType; // установить родительские значения. $ child = new ChildType // устанавливаем дочерние значения $ Ребенок [ 'Родитель'] = $ родителя; $ Ляющей> Save ();

База данных отражает все отлично, это Doctrine в PHPUnit, который не работает. Я еще не пробовал Вне PHPUnit, в конце концов, тестируйте перед использованием, верно? Но мне, возможно, придется сделать это и посмотреть, является ли это Doctrine или PHPUnit

0 голосов
/ 10 марта 2010

Если вы хотите использовать phpunit с symfony, проверьте: Плагин PHPUnit Просто обратите внимание, что это работает только с 1.2.x, похоже, для 1.4.x, который я сейчас использую на работе проверить: Еще один плагин PHPUnit последний из них находится в бета-версии, но, по словам автора, он работает для 1.4.x, я скоро опробую его, поэтому, если я смогу вспомнить, я приду вернуться сюда и выбросить мои выводы. Честно говоря, не сложно отказаться, если вы не хотите его устанавливать, поэтому попробовать это легко.

Если вы попробуете это, пожалуйста, опубликуйте свои выводы, мне было бы очень интересно услышать ваши мысли. Я считаю, что известь хромает (ха-ха!), Потому что это делает насмешкой рутинную работу.

...