Module de Test wordpress avec phpunit
Il est bon de s’assurer que la logique existante n’est pas interrompue lorsque vous travaillez avec des plug – ins et commencez à introduire de nouvelles fonctionnalités. Sans tests appropriés, une simple correction pourrait bien devenir un cauchemar de programmation de style italien. Ainsi, dans l’article d’aujourd’hui, je vais vous montrer comment utiliser les tests unitaires du plugin wordpress. Malgré les nombreux cadres de test, nous utiliserons PHP Unit car c’est le cadre officiel choisi par WordPress. Les tests unitaires WordPress avec phpunit sont généralement orientés plug – in, mais parfois vous voudrez peut – être les utiliser pour des thèmes. En général, cependant, les sujets ne devraient pas fournir une fonctionnalité similaire à celle d’un plug – in.
Nous examinerons brièvement la configuration et les fonctionnalités des tests unitaires dans WordPress. Enfin, nous testerons un plugin simple. Note: cet article est destiné aux développeurs WordPress avancés. Cependant, si vous êtes un utilisateur débutant ou intermédiaire, les concepts discutés ici peuvent vous aider à comprendre ce qui se passe dans les coulisses lors de la création d’applications WordPress. Avant de commencer à écrire cet article, vous devez avoir une connaissance pratique de WordPress, PHP et PHP Unit. Si vous n’êtes pas sûr ou avez besoin d’une mise à jour, Je vous recommande de lire ce qui suit: développement de débutants WordPress: comment commencer le développement de débutants WordPress: apprendre le développement de débutants PHP WordPress: créer un thème développement de débutants WordPress: widgets et menus développement de débutants WordPress: créer un plugin à partir du test d’unit é phpunit: sommes – nous sur la même page? Le test unitaire est le plus important pour améliorer la qualité du logiciel. L’objectif est de réduire les bogues en utilisant une approche système. Gagnez du temps et de l’énergie en exécutant la suite de test pour différentes zones de votre application, et vous pouvez vous assurer que vous faites des changements.
D’un point de vue technique, il s’agit d’écrire du Code
I qualit á: Microsoft a publié le Sous – système Windows (WSL) pour Linux, donc maintenant vous pouvez installer Ubuntu Bash sur Windows. Cela vous permettra d’exécuter (presque) toutes les commandes Linux natives sur Windows et d’interagir avec des fichiers sur votre système Windows. Les utilisateurs Mac et Linux ont toujours un shell intégré. Je n’utiliserai que WSL pour prouver qu’il fonctionne, et je n’aurai plus besoin d’installer une VM séparée pour obtenir le shell. Voici comment définir WSL.
J’utilise netbeans avec Vagrant et VVV sur le Sous – système Windows de Linux. Cela me donne un bon flux de travail pour développer et déboguer avec netbeans sur le système hôte, et pour exécuter des tests et des serveurs en utilisant l’environnement virtuel vv. Tout le contenu entre l’hôte et le système invité est automatiquement synchronisé. Par conséquent, tous les tests que j’ai écrits sur l’hôte en utilisant netbeans ou n’importe quel éditeur sont également synchronisés avec VM. Je garde également les plug – ins et les thèmes en dehors de la configuration WordPress et les charge dans l’instance VVV WordPress cible en utilisant la configuration customfile dans Vagrant.
Cela me permet d’utiliser GIT (Versioning) sans avoir à synchroniser des fichiers de base WordPress inutiles. Voici ma configuration:
De plus, chargez le projet d’essai. Dev dans netbeans et plug – in en dehors de WordPress, j’ai créé un lien symbolique vers le dossier plug – in comme suit: charger le contenu raewrites \/ f255443cf8d3cfc1afc3d94adb78note: c’est ne
Ceci est fait par phpunit. XML, qui est le fichier manifeste principal, indique à PHP Unit où trouver le test et comment le configurer. Étape 3 maintenant, il suffit de configurer une copie d’essai de la base de données pour notre plug – in. Php unit l’utilisera dans notre environnement de test lors de l’exécution du test. Si vous utilisez une instance DB qui fonctionne, assurez – vous qu’elle est sauvegardée. Nous devons exécuter le script install WP tests. SH est sous \
Assertionnotwperror ($actual, $$message) $$this – > assertiixerror ($actual, $$message) $$this – > asserrtitiixerror ($actual, $$message) this – > asserrtitiixerror ($$actual, $$message) Evaluating the WP _ Query $this – > assertequerquerqueryttrue ($$args) for a test \ \ u querquery $this – >assertequerquerqueryrtrue ($args), for example $this – >assertequerquerquerquerqueryrtrue (‘is u Single’, ‘is u Feed’ ‘) meais u Single () et is u Feed ($message) Evaluating the WP querquerquer) doit être vrai pour passer. WordPress Object Factory facilite la création de messages, de taxonomies, d’utilisateurs, etc. Ils créent des objets en utilisant les trois méthodes suivantes: create () – renvoie l’ID d’objet de l’objet créé create _ et get () – crée et renvoie l’objet entier create many ($Count) – crée plusieurs messages basés sur $count pour créer un utilisateur et obtenir son ID utilisateur, et nous pouvons simplement exécuter: $user id = $this – > Factory – > user – > create (); Ou créer un utilisateur $user _ id = $this – > Factory – > user – > create (array (‘Role’ = > ‘author’); D’autres types d’usines comprennent des postes, des pièces jointes, des commentaires, des utilisateurs, des termes, des catégories, des étiquettes, des blogs, des réseaux. Utilisez l’exemple de vue d’ensemble du chargement de l’usine nuencedesignstudio \/ eba99d92daee8cd233be15485d5bd46 vous pouvez trouver plus de détails sur chaque usine sur WordPress trac en ajoutant Setup () et teardown () WP _ unittestcase fournissent également leurs propres Setup () et teardown (), qui peuvent être utilisés avec Setup () et teardown () phpunit. En utilisant teardown, wp \ u unittestcase restaure l’état WordPress qui aurait pu avoir été modifié par la méthode test. Il sera chargé de vider le cache et de récupérer les variables globales. Pour les utiliser, il suffit de les appeler en utilisant parent:: Setup () ou parent:: teardown (), par exemple: Summary uploading Monitoring monitoring studio \/ 59649ad68b530003859f7fb66e735681 WordPress test fonctionne sur la page d’accueil du site. Pour exécuter le test sur différentes pages, vous devez leur demander de le faire. Par exemple, pour effectuer un test à l’écran après l’administration de l’édition, faites ce qui suit: téléchargez le résumé de nuancedesignstudio \/ e04a9d03f02b11d6db1cf
Il y a une erreur lorsqu’une erreur se produit. Load Gradient Comprehensive Design Studio \/ 16910386a3d9f2c37051cc5b6b677989 Pour tester le rappel ou sa priorité dans le plug – in, nous avons ajouté un rappel au crochet de l’action user _ Register avec une valeur de priorité différente de la valeur par défaut de 10. Ici, nous pouvons utiliser la fonction has _ action qui renvoie la priorité du rappel sur le crochet spécifié. Échec du test parce que la priorité doit être supérieure à 10 Test réussi, contrôle de priorité supérieur à 10 Pour vérifier que le champ préféré du navigateur est correctement mis à jour à partir du profil d’utilisateur, nous devons falsifier la variable Post et ensuite appeler la méthode de mise à jour des méta – utilisateurs. C’est un test d’isolement. Nous ne nous préoccupons que de la fonctionnalité du plug – in pour mettre à jour Meta, et non du reste du système, comme si le formulaire de profil avait été envoyé correctement. Échec du test après mise à jour des méta – valeurs Comparer les tests de réussite des navigateurs préférés mis à jour vers Opera Voici le code complet pour les tests dans cet article: chargement d’un exemple de test d’unit é du monde réel dans Essential Numerical signal studio \/ 4a8bee5d4f1dfd2b78d3f6976e2c299b WordPress voici quelques – uns des tests que j’ai écrits pour un simple utilitaire de plug – in de gestion utilisant une construction orientée objet. Remarque: pour utiliser PHP Unit testdouble dans un plug – in sans classe, vous devez utiliser l’espace de noms et PHP 5.3 ou plus tard. Pour quelques exemples de tests avancés, voir: WordPress Core test woocommerce Unit Test wordpress API Simulation Ajax Framework request Test wordpress theme test a simple way to test a WordPress Theme is Testing Data Using Theme Unit. Nous avons un bon article expliquant comment le configurer. Si votre sujet offre une fonctionnalité similaire à un plug – in, ou si vous souhaitez utiliser PHP
Unit é, vous pouvez voir le test de thème de base de Tom mcfarlin. La configuration dépend de la structure du sujet. Développement piloté par des tests (TDD) TDD est un paradigme de conception logicielle dans lequel les tests unitaires sont écrits d’abord, puis le Code est écrit pour réussir les tests. L’idée est d’écrire des tests d’Unit é échoués, puis d’écrire du Code pour réussir ces tests. La boucle se poursuit jusqu’à ce que toutes les fonctionnalités manquantes aient été ajoutées. À chaque itération, le Code est reconstruit sans changer de comportement. Que vous utilisiez ou non TDD, il est essentiel d’écrire des tests au moment du développement. J’espère que cet article vous aidera à commencer à utiliser le test phpunit dans WordPress. Vous pouvez également envisager d’automatiser les tests à l’aide d’un exécuteur de tâches comme gulp ou Grunt. Enfin, vous pouvez suivre WordPress trac, qui vous aidera à écrire des tests en utilisant les meilleures pratiques de WordPress. Autres ressources https:\/\/make.wordpress.org\/cli\/2013\/02\/19\/plugin-unit-tests\/ http:\/\/wordpress.tv\/?s=unit Test https:\/\/carlalexander.ca\/introduction-wordpress-unit-testing\/ https:\/\/jtreminio.com\/2013\/03\/unit-testing-tutorial-part-5-mock-methods-and-overriding-constructors\/ J’espère que vous trouverez cet article utile sur les tests plug – in! Si vous avez des questions sur le Code, veuillez les poser dans les commentaires ci – dessous! Étiquettes: environnement d’essai