{"id":4223,"date":"2025-04-02T12:35:32","date_gmt":"2025-04-02T10:35:32","guid":{"rendered":"https:\/\/europe.wordcamp.org\/2025\/?post_type=wcb_session&#038;p=4223"},"modified":"2025-06-09T15:13:56","modified_gmt":"2025-06-09T13:13:56","slug":"building-automated-tests-with-wordpress-playground","status":"publish","type":"wcb_session","link":"https:\/\/europe.wordcamp.org\/2025\/session\/building-automated-tests-with-wordpress-playground\/","title":{"rendered":"Building Automated Tests with WordPress Playground"},"content":{"rendered":"<p>The goal of this workshop is to show how easy it is to start testing WordPress projects and enable participants to implement tests in their own projects.<br \/>\nIn the workshop we will write integration and end-to-end tests for a typical WordPress plugin.<br \/>\nWe will run tests using WordPress Playground, so they can run inside the WordPress context, each test can run on a differently configured site, and we can test the project using both PHP and HTTP requests.<br \/>\nTo start we will fork a plugin from GitHub and learn how to run it locally using the Playground CLI. After that, we will implement integration and end-to-end tests for our plugin using Playground.<br \/>\nOnce we have all tests working we will add a GitHub action to run these tests on every commit in GitHub.<\/p>\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-wordpress-tv-embed wp-block-embed-wordpress-tv-embed wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"VideoPress Video Player\" aria-label='VideoPress Video Player' width='500' height='281' src='https:\/\/video.wordpress.com\/embed\/XoA0Uy30?hd=1&amp;cover=1' frameborder='0' allowfullscreen allow='clipboard-write'><\/iframe><script src='https:\/\/v0.wordpress.com\/js\/next\/videopress-iframe.js?m=1739540970'><\/script>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>The goal of this workshop is to show how easy it is to start testing WordPress projects and enable participants to implement tests in their own projects. In the workshop we will write integration and end-to-end tests for a typical WordPress plugin. We will run tests using WordPress Playground, so they can run inside the [&hellip;]<\/p>\n","protected":false},"author":14562967,"featured_media":5407,"template":"","meta":{"_crdt_document":"","jetpack_post_was_ever_published":false,"_wcpt_session_time":1749279600,"_wcpt_session_duration":4500,"_wcpt_session_type":"session","_wcpt_session_slides":"https:\/\/europe.wordcamp.org\/2025\/files\/2025\/06\/Building-Automated-Tests-with-WordPress-Playground.pdf","_wcpt_session_video":"https:\/\/wordpress.tv\/2025\/06\/07\/building-automated-tests-with-wordpress-playground\/","_wcpt_speaker_id":[4120],"footnotes":""},"session_track":[55],"session_category":[47,48],"class_list":["post-4223","wcb_session","type-wcb_session","status-publish","has-post-thumbnail","hentry","wcb_track-track3","wcb_session_category-session-development","wcb_session_category-session-workshops"],"jetpack_shortlink":"https:\/\/wp.me\/pfPHvs-167","jetpack_sharing_enabled":true,"session_date_time":{"date":"June 7, 2025","time":"09:00"},"session_speakers":[{"id":"4120","slug":"berislav-grgicak","name":"Berislav Grgicak","link":"https:\/\/europe.wordcamp.org\/2025\/speaker\/berislav-grgicak\/"}],"session_cats_rendered":"Development, Workshops","_links":{"self":[{"href":"https:\/\/europe.wordcamp.org\/2025\/wp-json\/wp\/v2\/sessions\/4223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/europe.wordcamp.org\/2025\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/europe.wordcamp.org\/2025\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":3,"href":"https:\/\/europe.wordcamp.org\/2025\/wp-json\/wp\/v2\/sessions\/4223\/revisions"}],"predecessor-version":[{"id":8026,"href":"https:\/\/europe.wordcamp.org\/2025\/wp-json\/wp\/v2\/sessions\/4223\/revisions\/8026"}],"speakers":[{"embeddable":true,"href":"https:\/\/europe.wordcamp.org\/2025\/wp-json\/wp\/v2\/speakers\/4120"}],"author":[{"embeddable":true,"href":"https:\/\/europe.wordcamp.org\/2025\/wp-json\/wporg\/v1\/users\/berislavgrgicak"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/europe.wordcamp.org\/2025\/wp-json\/wp\/v2\/media\/5407"}],"wp:attachment":[{"href":"https:\/\/europe.wordcamp.org\/2025\/wp-json\/wp\/v2\/media?parent=4223"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/europe.wordcamp.org\/2025\/wp-json\/wp\/v2\/session_track?post=4223"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/europe.wordcamp.org\/2025\/wp-json\/wp\/v2\/session_category?post=4223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}