Модульное тестирование PHP WordPress?


8

Учитывая, как написан WordPress и как он взаимодействует с базой данных, и учитывая, как он не очень ориентирован на ООП, существует ли способ модульного тестирования темы? Есть ли способ модульного тестирования фреймворка (не фреймворка темы), который взаимодействует с WordPress, то есть, например, вы можете написать модульный тест для работы с циклом, работы с виджетами?

Если да, то есть ли у кого-нибудь примеры? Я знаю, как писать модульные тесты, но я никогда не пытался написать один для темы.

Мысли?

Ответы:


5

Ничто не мешает вам написать свой собственный модульный тест для тем / плагинов с использованием PHPUnit или другой платформы тестирования.

Что касается WordPress, здесь есть официальные юнит-тесты:

Существует несколько сценариев сборки, которые могут автоматизировать модульное тестирование, в том числе WP-CLI со встроенным модульным тестированием, хотя вы, очевидно, должны написать свой собственный код.

Я также нашел этот плагин сегодня в твиттере scibu :)
http://wordpress.org/extend/plugins/razor/
В репозитории есть еще несколько:
http://wordpress.org/extend/plugins/tags/phpunit

Также проверьте это : Учебники для модульного тестирования в WordPress и для unit-test.svn.wordpress.org?


3

Я написал библиотеку тестирования PHPunit на базе Travis-CI для Jigoshop и Easy Digital Downloads, которые являются плагинами Ecommerce WP, разработанными на Github. Использованная библиотека может быть легко преобразована для работы с темами. Приятной особенностью комплекта Travis-CI является то, что мы можем использовать его для быстрого тестирования нескольких версий PHP и WP. Если ваша тема - тема премиум-класса, и, следовательно, размещение ее на бесплатном репозитории Github невозможно, пакет работает на репозиториях Private Github с Travis-CI.

Кроме того, вы можете использовать тот, который находится в Jigoshop, и использовать PHPUnit на основе командной строки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.