• Accueil
  • Info
  • Publicité
  • Privacy & Policy
  • Nous Contacter
No Result
View All Result
Technique de pointe
  • Actualité
  • Technologies
  • Jeu vidéo
  • Mobile
  • Astuces
  • HTML5 / CSS
  • Java Script
  • PHP
  • Article Sponsorisé
  • Astuces
  • Jeu vidéo
  • Nous Contacter
MYCAMER
  • Actualité
  • Mobile
  • Jeu vidéo
    10 séries de jeux vidéo qui ont encore besoin d’adaptations animées

    10 séries de jeux vidéo qui ont encore besoin d’adaptations animées

    5 personnages de jeux vidéo avec des accents gallois qui ne viennent pas d’Elden Ring

    5 personnages de jeux vidéo avec des accents gallois qui ne viennent pas d’Elden Ring

    Je fête le Tour de France en faisant du vélo dans les jeux

    Je fête le Tour de France en faisant du vélo dans les jeux

    Les chats sont meilleurs que les chiens (en tant que protagonistes de jeux vidéo)

    Les chats sont meilleurs que les chiens (en tant que protagonistes de jeux vidéo)

    Bangor’s Gamenetics apporte de la créativité aux contrôleurs de jeux vidéo

    Bangor’s Gamenetics apporte de la créativité aux contrôleurs de jeux vidéo

    Dwayne Johnson fait la promotion du jeu vidéo “DC League of Super-Pets”

    Dwayne Johnson fait la promotion du jeu vidéo “DC League of Super-Pets”

    Pourquoi les joueurs sont ravis de la renaissance de FF7, mais pas du remake de The Last of Us

    Pourquoi les joueurs sont ravis de la renaissance de FF7, mais pas du remake de The Last of Us

    Les meilleurs jeux vidéo concernent les duos Badass et Child

    Les meilleurs jeux vidéo concernent les duos Badass et Child

    La vidéo de Fallout 3 montre du contenu qui a été coupé du jeu

    La vidéo de Fallout 3 montre du contenu qui a été coupé du jeu

  • Developpement web
    • All
    • Language HTML5
    MISE À JOUR: La police identifie un homme retrouvé abattu dans un camion sur Ringgold Road

    MISE À JOUR: La police identifie un homme retrouvé abattu dans un camion sur Ringgold Road

    Un groupe de soutien donne pour aider au confort des patients atteints de cancer

    Un groupe de soutien donne pour aider au confort des patients atteints de cancer

    Repêchage de la LNH: Lane Hutson et Jack Devine en tête d’affiche de la catégorie des espoirs élevés à Chicago

    Repêchage de la LNH: Lane Hutson et Jack Devine en tête d’affiche de la catégorie des espoirs élevés à Chicago

    La Juventus “veut” un accord d’échange Werner-De Ligt, la “nouvelle offre” de Barcelone pour Raphinha, Chelsea “cible” Kimpembe – News 24

    La Juventus “veut” un accord d’échange Werner-De Ligt, la “nouvelle offre” de Barcelone pour Raphinha, Chelsea “cible” Kimpembe – News 24

    CSS Founder : Top entreprise de conception de sites Web à Bangalore

    CSS Founder : Top entreprise de conception de sites Web à Bangalore

    Un homme accusé d’homicide suite à une épave causée par un excès de vitesse sur le boulevard Wilma Rudolph

    Un homme accusé d’homicide suite à une épave causée par un excès de vitesse sur le boulevard Wilma Rudolph

    Extensions de navigateur qui ont fait les choses en grand

    Extensions de navigateur qui ont fait les choses en grand

    Test du Chromebook Lenovo IdeaPad Duet 3

    Test du Chromebook Lenovo IdeaPad Duet 3

    Premiers pas avec Lottie.js – SitePoint

    Premiers pas avec Lottie.js – SitePoint

  • Astuces
    7 choses à faire avant de changer votre thème WordPress

    7 choses à faire avant de changer votre thème WordPress

    Comment créer un site Web en 5 étapes

    Comment créer un site Web en 5 étapes

    Les 5 meilleurs outils SEO pour booster votre classement

    Les 5 meilleurs outils SEO pour booster votre classement

    La mise à jour du plugin Yoast WordPress provoque des erreurs fatales

    La mise à jour du plugin Yoast WordPress provoque des erreurs fatales

    Autowriterpro utilise l’IA pour générer de nouveaux articles pour 40 $

    Autowriterpro utilise l’IA pour générer de nouveaux articles pour 40 $

    WordPress révèle son option de création de site Web la plus abordable à ce jour

    WordPress révèle son option de création de site Web la plus abordable à ce jour

    11 étapes pour vous aider à démarrer votre carrière de blogueur

    11 étapes pour vous aider à démarrer votre carrière de blogueur

    Les 15 meilleures façons de sécuriser un site WordPress

    Les 15 meilleures façons de sécuriser un site WordPress

    WordPress 6.0 rend la création d’un site Web plus facile que jamais

    WordPress 6.0 rend la création d’un site Web plus facile que jamais

  • Nous contacter
No Result
View All Result
MYCAMER
No Result
View All Result
ADVERTISEMENT
Home Astuces

Comment commencer à tester votre code WordPress avec le framework de test PHP Pest – WP Tavern

Caleb by Caleb
mai 18, 2022
in Astuces
0 0
0
Comment commencer à tester votre code WordPress avec le framework de test PHP Pest – WP Tavern
334
SHARES
2k
VIEWS
Share on FacebookShare on TwitterRedditLinkedin


Nous pouvons tous convenir que WordPress a parcouru un long chemin depuis ses débuts et qu’il est devenu bien plus qu’un logiciel de blog.

À la base, il s’agit toujours d’un système de gestion de contenu (CMS), mais avec plus de 59 000 plugins dans le wordpress.org répertoire, vous pouvez le personnaliser pour qu’il soit beaucoup plus.

La raison de sa popularité est sa faible barrière à l’entrée pour les créateurs de contenu et les développeurs. Parfois, cela a un coût. Ce n’est un secret pour personne que WordPress a mauvaise réputation en matière de développement. Il a beaucoup de bagages hérités et de règles absolues qui empêchent tout changement de rupture de compatibilité descendante en ce qui concerne le code PHP (Gutenberg est une autre histoire que je n’aborderai pas).

Ce code PHP hérité est souvent utilisé par les développeurs qui commencent à entrer dans le monde de la programmation, et le problème est qu’ils peuvent apprendre de mauvais modèles de programmation. Cela signifie à son tour qu’ils réutiliseront le code mal écrit, augmentant ainsi la quantité de mauvais code dans le monde.

C’est là que WordPress tire sa mauvaise réputation dans la communauté des développeurs.

Briser le cycle

Alors, comment pouvons-nous briser ce cycle de mauvais code ? En enseignant aux nouveaux développeurs comment écrire un bon code. Un exemple d’enseignement aux nouveaux développeurs (mais aussi aux anciens qui s’accrochent encore à la façon de faire « WordPress ») consiste à écrire des didacticiels.

Une autre façon consiste à les encourager à utiliser des outils qui peuvent les aider à écrire un meilleur code.

Je suis actuellement impliqué dans le travail qui vise à sortir la nouvelle version du Normes de codage WordPressun ensemble de règles utilisées pour la PHP_CodeSniffer outil qui vous permettra de savoir si votre code présente des problèmes potentiels (sécurité, bonnes pratiques, style de code).

Un autre outil que j’ai récemment développé est un emballer qui aidera les développeurs à mettre en place des tests d’intégration WordPress qui utilisent le Ravageur cadre de test.

Ok, alors pourquoi avons-nous besoin de ce nouvel outil ?

La principale motivation derrière la création de ce package est d’encourager davantage de personnes à écrire des tests pour leur code, en particulier les développeurs de plugins.

De nombreux développeurs de la communauté WordPress suivent le mantra : je peux voir que cela fonctionne parce que je l’ai essayé dans mon navigateur. C’est OK, mais il y a des problèmes avec ça.

Tout d’abord, cela prend du temps. Chaque fois que vous faites un changement, vous devez vous assurer qu’il fonctionne, mais aussi que vous n’avez rien cassé.

Deuxièmement, les gens font des erreurs. Nous ne sommes pas infaillibles et le code peut être mal utilisé d’une manière que vous n’auriez jamais cru possible. Vous seriez étonné de voir à quel point les gens peuvent être créatifs lorsqu’ils écrivent du code.

Les tests automatisés sont rapides et peuvent vous aider à tester divers cas qui se produiront lorsque vous exécuterez votre code.

Vous testez le comportement prévu (chemin heureux), et de manière rapide, vous pouvez ajouter des exemples de la façon dont votre code peut être utilisé d’une manière que vous n’aviez pas l’intention d’utiliser (chemin malheureux).

Il protège également votre code des régressions. Une régression de code se produit lorsque vous cassez involontairement une partie de votre code en ajoutant un nouveau code.

Le problème avec les tests mis en place jusqu’à présent

Les tests dans WordPress ne sont pas une nouveauté. Et ce n’est pas comme si vous ne pouviez pas configurer de tests pour votre code auparavant. Il existe des bibliothèques incroyables qui vous aideront à tout configurer comme navigateur wp.

Mais le problème est que la procédure de configuration est souvent maladroite.

Vous devez configurer une base de données distincte pour les tests et vous devez exécuter certains scripts, puis modifier les fichiers pour que tout fonctionne.

Avouons-le, ce n’est pas une chose simple à faire, et les développeurs sont par nature des créatures paresseuses (c’est pourquoi nous écrivons du code pour faire les choses pour nous 😄).

L’objectif de la configuration du test d’intégration wp-pest est d’éliminer tout ce travail supplémentaire.

Comment le configurer

Pour le mettre en place, votre projet doit utiliser Compositeur. C’est un moyen standard de facto d’ajouter des packages à votre code.

Dans votre type de terminal

composer require dingo-d/wp-pest-integration-test-setup --dev

Après avoir téléchargé le package et ses dépendances, vous pouvez configurer les tests de thème en tapant

vendor/bin/wp-pest setup theme

Ou, dans le cas où vous souhaitez mettre en place des tests pour votre plugin, vous pouvez écrire

vendor/bin/wp-pest setup plugin --plugin-slug=your-plugin-slug

En option, vous pouvez fournir un --wp-version paramètre, pour spécifier la version de WordPress sur laquelle vous souhaitez tester votre code.

En arrière-plan, une instance WordPress sera téléchargée et une base de données en mémoire sera configurée, ainsi que deux exemples de tests que vous pouvez exécuter.

Ensuite, en exécutant soit

vendor/bin/pest --group=unit

ou alors

vendor/bin/pest --group=integration

effectuera les tests.

La beauté de Pest est que sa syntaxe est conviviale pour les développeurs. Il a une documentation incroyable et une excellente syntaxe. Prenons un exemple simple. Supposons que vous enregistrez un type de publication personnalisé appelé “Livres”:

<?php

/**
 * Plugin Name: Test plugin
 * Desctiption: Test plugin
 * Version: 1.0.0
 * License: MIT
 */

function test_plugin_register_books_cpt() {
    $args = array(
        'label'              => esc_html__( 'Books', 'test-plugin' ),
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'book' ),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => null,
        'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ),
    );
 
    register_post_type( 'book', $args );
}
 
add_action( 'init', 'test_plugin_register_books_cpt' );

Après avoir exécuté la commande setup qui ajoute un exemple, un test appelé BooksCptTest.php ressemblerait à ceci :

<?php

namespace Tests\Integration;

beforeEach(function () {
	parent::setUp();
});

afterEach(function () {
	parent::tearDown();
});

test('Books custom post type is registered', function () {
	// We can use assertions from PHP_Unit.
	$this->assertNotFalse(has_action('init', 'test_plugin_register_books_cpt'));

	$registeredPostTypes = \get_post_types();

	// Or we can use expectations API from Pest.
	expect($registeredPostTypes)
		->toBeArray()
		->toHaveKey('book');
});

Fonctionnement vendor/bin/pest --group=integration nous donne la sortie suivante :

Installing...
Running as single site... To run multisite, use -c tests/phpunit/multisite.xml
Not running ajax tests. To execute these, use --group ajax.
Not running ms-files tests. To execute these, use --group ms-files.
Not running external-http tests. To execute these, use --group external-http.

   PASS  Tests\\Integration\\BooksCptTest
  ✓ Books custom post type is registered

  Tests:  1 passed
  Time:   0.14s

Conclusion

Et juste comme ça, vous avez la possibilité d’exécuter des tests d’intégration WordPress dans votre thème ou plugin. Les tests sont incroyables car non seulement ils nous protègent des erreurs, mais ils nous obligent également à écrire du code propre et testable. Cela est particulièrement vrai pour les plugins qui ont une logique compliquée ou qui communiquent avec des API tierces.

L’écriture de tests pour une telle base de code vous obligera à réfléchir à l’apparence de votre architecture de code afin que vous puissiez facilement écrire des tests automatisés – sans parler du temps et de l’argent que vous économiserez en n’ayant pas à tout tester manuellement.

Si vous pensez que c’est quelque chose dont vous pourriez bénéficier, n’hésitez pas à l’utiliser, et démarrer le référentiel sur GitHub.

Espérons que cela encouragera davantage de développeurs WordPress à utiliser des outils qui amélioreront leurs compétences en codage.

Catégorie: Développement, Nouvelles

— to wptavern.com

Get real time update about this post categories directly on your device, subscribe now.

Unsubscribe
Caleb

Caleb

Stay Connected

  • 85.8k Followers
  • 172k Subscribers

Articles populaires

  • 10 problèmes courants de l’iPhone 13 et comment les résoudre

    10 problèmes courants de l’iPhone 13 et comment les résoudre

    4034 shares
    Share 1614 Tweet 1009
  • Comment installer phpMyAdmin sur Debian 11 Bullseye (Apache)

    1073 shares
    Share 429 Tweet 268
  • 2 façons d’installer le serveur LAMP sur Ubuntu 22.04 | 20.04

    456 shares
    Share 182 Tweet 114
  • Battle.net s’est remis d’une attaque DDoS, selon Blizzard

    578 shares
    Share 231 Tweet 145
  • Le mystère de la mort de la mariée résolu; histoire d’amour a conduit à son suicide

    350 shares
    Share 140 Tweet 88

Follow Our Page

Follow Us

    Go to the Customizer > JNews : Social, Like & View > Instagram Feed Setting, to connect your Instagram account.
Facebook Twitter Youtube Vimeo Instagram

We bring you the best Premium WordPress Themes that perfect for news, magazine, personal blog, etc. Check our landing page for details.

Category

  • Actualité
  • Article Sponsorisé
  • Astuces
  • Jeu vidéo
  • Language HTML5
  • Mobile
  • portrait
  • Technologies

Recent News

Le C-3PO de Star Wars capturé de manière colorée dans un portrait à l’huile de qualité professionnelle

Le C-3PO de Star Wars capturé de manière colorée dans un portrait à l’huile de qualité professionnelle

juillet 3, 2022
MISE À JOUR: La police identifie un homme retrouvé abattu dans un camion sur Ringgold Road

MISE À JOUR: La police identifie un homme retrouvé abattu dans un camion sur Ringgold Road

juillet 3, 2022

© 2022 JNews - Premium WordPress news & magazine theme by Jegtheme.

No Result
View All Result
  • Actualité
  • Mobile
  • Jeu vidéo
  • Developpement web
  • Astuces
  • Nous contacter

© 2022 JNews - Premium WordPress news & magazine theme by Jegtheme.

Welcome Back!

Sign In with Facebook
Sign In with Google
OR

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
fr French
ar Arabiczh-CN Chinese (Simplified)en Englishfr Frenchde Germanit Italianru Russianes Spanish

Add New Playlist

This website uses cookies. By continuing to use this website you are giving consent to cookies being used. Visit our Privacy and Cookie Policy.