PHPUnit: покрытие кода для шаблонов Smarty - PullRequest
2 голосов
/ 08 сентября 2011

Используя PHPUnit для запуска тестов, я хотел бы иметь метрики покрытия кода для моих Smarty шаблонов.

К сожалению, это не работает из-забокс, потому что Smarty компилирует шаблоны в .php файлы, так что сами шаблоны не имеют информации о покрытии.Глядя на покрытие скомпилированного .php файла нехорошо, поскольку скомпилированные файлы почти не читаются.

Что можно сделать, чтобы получить исходный код шаблона с информацией о покрытии?

I 'Мне бы хотелось иметь инструмент, который интегрируется с PHP_CodeCoverage PHPUnit , так как тогда я мог видеть покрытие в его сгенерированных файлах HTML.Но любого другого решения тоже будет достаточно:)

1 Ответ

3 голосов
/ 08 сентября 2011

По сути, вы используете «новый» язык программирования (шаблоны), для которого у вас нет инструмента покрытия.Вы заметили, что вам нужны данные покрытия для шаблонов, и да, это должно пройти через скомпилированные файлы PHP, чтобы вы могли запускать / тестировать и получать данные покрытия.

Я не знаю об объявленииСпециальные решения, но общее решение для любого языка изложено здесь:

Покрытие веток для произвольных языков стало проще .

Моя компания создает семейство тестовинструменты покрытия основаны на этой идее.Эти инструменты взаимодействуют;если вы собираете данные о тестовом покрытии из смешанной системы Java с (C-включенным JNI-вызовами) кодом, используя инструменты тестового покрытия Java и C, они могут отображать покрытие как Java, так и кода C вместе, разумно, такжекак предоставить статистику покрытия данных.

В этом семействе уже есть инструмент для тестирования PHP.Если бы существовал инструмент покрытия Smarty, его вывод можно было бы объединить непосредственно с выходом покрытия PHP, чтобы получить покрытие как для шаблонов PHP, так и для шаблонов Smarty.

...