PHP Unit Testing WordPress?


8

Gibt es eine Möglichkeit, ein Thema zu testen, wenn man bedenkt, wie WordPress geschrieben ist und wie es mit einer Datenbank interagiert und wie wenig OOP-orientiert es ist? Gibt es eine Möglichkeit, einen Framework-Test (kein Theme-Framework) durchzuführen, der mit WordPress interagiert? Können Sie beispielsweise einen Unit-Test für den Umgang mit der Schleife und den Widgets schreiben?

Wenn ja, hat jemand Beispiele? Ich weiß, wie man Unit-Tests schreibt, aber ich habe nie versucht, einen für ein Thema zu schreiben.

Gedanken?

Antworten:


5

Nichts hindert Sie daran, eigene Unit-Tests für Themen / Plugins mit PHPUnit oder einer anderen Testplattform zu schreiben.

WordPress hat hier einen offiziellen Unit Test:

Es gibt verschiedene Build-Skripte , mit denen Unit-Tests automatisiert werden können, einschließlich WP-CLI, in die Unit-Tests integriert sind, obwohl Sie offensichtlich Ihren eigenen Code schreiben müssen.

Ich habe dieses Plugin heute auch über scibus Twitter-Rant gefunden :)
http://wordpress.org/extend/plugins/razor/
Es gibt noch ein paar mehr im Repo:
http://wordpress.org/extend/plugins/tags/phpunit

Überprüfen Sie auch diese : Tutorials für Unit-Testing in Wordpress und für unit-test.svn.wordpress.org?


3

Ich habe die Travis-CI-basierte PHPunit- Testbibliothek für Jigoshop und Easy Digital Downloads geschrieben, die beide auf Github entwickelte E-Commerce-WP-Plugins sind. Die verwendete Bibliothek könnte leicht in Themen umgewandelt werden. Das Schöne an der Travis-CI-Suite ist, dass wir damit schnell mehrere PHP- und WP-Versionen testen können. Wenn es sich bei Ihrem Thema um ein Premium-Thema handelt und es daher nicht möglich ist, es auf ein kostenloses Github-Repo zu setzen, funktioniert die Suite mit Travis-CI auf privaten Github-Repos.

Alternativ können Sie die in Jigoshop verwendete verwenden und PHPUnit mit Befehlszeilenfunktion verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.