WordPress'te Birim Testine Giriş – PHPUnit
Bu dizinin WordPress'te birim testi hakkındaki ilk gönderisinde, kodumuzu her sürümden önce otomatik olarak test etmenin öneminden ve çalıştırabileceğiniz farklı test türlerinden bahsettik. Henüz okumadıysanız, devam edin ve hemen yapın; hafif ve kolaydır ve size bu konuyla ilgili gelecek yayınları anlamanız için ihtiyacınız olan temel bilgileri verecektir.
Yazılım testi geniş bir kavramdır—yalnızca çalıştırabileceğiniz çok sayıda test türü (birim testleri, entegrasyon testleri, kabul testleri…) nedeniyle değil, aynı zamanda kullanabileceğiniz tüm farklı araçlar ve çerçeveler nedeniyle. WordPress geliştiricileri olduğumuz için, sadece WordPress eklentilerimizi ve temalarımızı nasıl test edeceğimize odaklanacağız.
Bildiğiniz gibi, WordPress PHP'de (bazı JavaScript'lerle birlikte) uygulanmaktadır ve bu nedenle kendi eklentilerimiz ve temalarımız da vardır. PHP kodunu test etmek için tercih edilen çerçeve PHPUnit'tir, yani… gelin ve PHP bileşenlerimizi test etmek için PHPUnit'i nasıl kullanacağımızı öğrenelim!

PHPUnit nedir?
Bir testin üç basit adımı vardır: ortamı kurun, buna göre hareket edin ve sonuçların beklentilerinize uyup uymadığını kontrol edin . Kodumuzu test etmekle ilgilendiğimizde, bir dizi test tanımlamamıza izin veren, bu üç adımı izleyerek hepsini çalıştıran ve yanlış bir şey olduğunda bizi uyaran bir araca veya çerçeveye ihtiyacımız olduğu oldukça açıktır. Daha önce de belirttiğim gibi, bu görev için kullanacağımız çerçeve PHPUnit. Onun hakkında ve tüm özellikleri hakkında konuşmak için biraz zaman harcayabiliriz… ama eğer benim gibiyseniz, bir örnek görmeyi tercih edersiniz, değil mi?
Önceki yazımda, herhangi bir fiyatın KDV değerini döndüren süper basit bir fonksiyon sunmuştum. Şuna benziyordu:
Ayrıca, düz bir İngilizce ile yazıldığında bir birim testinin nasıl "görüneceğini" de açıkladım. Şöyle bir şeydi: “hey işlev, sana 1000 sayısını verirsem ne elde ederim? 210 umuyorum ”veya “hey işlevi, size 1.000€ dizesini verirsem ne elde ederim? Ben de 210 umuyorum”. PHPUnit'te bu tür testler oluşturmak için aşağıdaki sınıfı yazmanız yeterlidir:
testleri programlı olarak uygulayan iki basit yöntemi ( testVatOfIntegerIsCorrect ve testVatOfStringIsCorrect ) vardır. Oldukça basit, değil mi?
Şimdi, ya bu testleri yapsaydınız? Ne olurdu? İlk testin çalışması gerekir; fonksiyonumuz girdi değerini ( 1000 ) 0.21 ile çarpar ve beklediğimiz tam değeri döndürür: 210 . Öte yandan, ikinci işlev muhtemelen başarısız olacaktır. Girdi değeri bir dizgedir ( '1.000€' ) ve bu nedenle onu 0.21 ile çarpmak pek mantıklı değil! Önceki kurulumda gerçekte ne olduğunu keşfetmek için okumaya devam edin?
WordPress Eklentinizi/Temanızı Test etmek için PHPUnit Ortamı Kurma
Tebrikler! Artık bir PHPUnit testinin nasıl göründüğünü biliyorsunuz. Muhtemelen yazıyı burada bitirebiliriz ama… bir dakika, WordPress'teki şeyleri nasıl test edeceğiz? Pekala, önce birkaç araç kurmamız ve yapılandırmamız gerekiyor. Pippinsplugins'in ortamın nasıl kurulacağını açıkladığı harika bir gönderisi var. Esasen yapmanız gerekenler:
- PHPUnit'i yükleyin. PHPUnit testleri yazmak ve çalıştırmak istiyorsanız PHPUnit'e ihtiyacınız var, değil mi? Github depolarında ayrıntılı olarak verilen talimatları uygulamanız yeterlidir.
- WP-CLI'yi yükleyin. WordPress bileşenlerini test etmekle ilgilendiğimiz için, WordPress kurulumlarını hızlı bir şekilde kurmak için bir araca ihtiyacımız var. Tahmin edebileceğiniz gibi, bunu komut satırından yapmak, web tarayıcınızla sayfaları taramaktan çok daha hızlıdır. WP-CLI ( WordPress-Komut Satırı Arayüzü ) bu iş için doğru araçtır. Geliştirme projelerinizde VVV kullanıyorsanız, WP-CLI zaten oradadır; değilseniz, web sitelerindeki talimatları izleyerek kurun.
Kurulduktan sonra ortamı ayarlamak, aşağıdaki komutları çalıştırmak kadar kolaydır. İlk olarak, WordPress kurulumunuzun kök dizinine erişin:
cd serseri-yerel/www/wordpress-varsayılan/
ve bu komutu çalıştırın:
wp iskele eklentisi testleri eklenti adı
plugin-name , test etmek istediğiniz eklentinin adıdır. Örneğin, bizimki nelio-content olacaktır.
Şimdi eklentinin dizinini kontrol ederseniz, yeni dosya ve dizinler olduğunu göreceksiniz:
-
bin/-
install-wp-tests.sh
-
-
phpunit.xml -
test/-
bootstrap.php -
test-sample.php
-
-
.travis.yml
bunların tümü PHPUnit ile ilgilidir.
Son olarak, aşağıdaki komutu çalıştırın:
bash bin/install-wp-tests.sh wordpress_test kök parola localhost en son
wordpress_test yeni bir veritabanının adıdır (test verilerinin kaydedileceği yer), root veritabanı kullanıcı adınızdır, password şifresidir ve localhost veritabanı sunucunuzun adıdır (tüm bu bilgiler WordPress'inizde bulunabilir' wp-config.php dosyası). Bu, testlerinizin gerçek WordPress kurulumunuzu engellememesi için yeni bir veritabanı oluşturacaktır.
İşlem bittiğinde, phpunit çalıştırın ve her şeyin yolunda gittiğini göreceksiniz:

Vagrant-VVV Kullanıcıları İçin Bir Not
VVV kullanıyorsanız önceki komutlar çalışmayacaktır. Nedenini bulmakta zorlandım, ama neden aslında oldukça aptalca – onları sanal kutunuzda çalıştırmanız gerekiyor. Erişmek için şunu çalıştırın:
serseri ssh
Sanal kutunun içinde WordPress şu adreste bulunabilir:
cd /srv/www/wordpress-default/
Oraya gidin ve yukarıda paylaştığımız adımları uygulayın. Bu kadar!
Ah! Ve unutmayın: Testlerinizi her çalıştırmak istediğinizde, sanal makineye erişmeniz gerekir – yapmazsanız, testleriniz çalışmaz (eğer herhangi biriniz, çocuklar, bunları ana bilgisayardan nasıl çalıştıracağınızı biliyorsa). , yorumlarda bana bildirin!).
İlk Basit Testimiz
Şimdiye kadar gördüklerimizi nasıl uygulayacağımızı görelim, olur mu? Hayatınızı kolaylaştırmak için bu basit eklentiyi hazırladım ve paylaştım; aşağıdaki komutları kullanarak WordPress kurulumunuza ekleyin:
cd /srv/www/wordpress-default/wp-content/plugins git klon https://github.com/davilera/nelio-vat-example.git
ve ortamı az önce gördüğümüz gibi kurun:
cd /srv/www/wordpress-varsayılan wp iskele eklentisi testleri nelio-vat-örnek cd /srv/www/wordpress-default/wp-content/plugins bash bin/install-wp-tests.sh wordpress_vat_example kök kök localhost en son
Her şey hazır olduğunda, test-sample.php tests / silin ve test-vat-function.php adında yeni bir dosya oluşturun. Bu dosyayı düzenleyin ve yukarıda tartıştığımız VatFunctionTest ekleyin. Bundan sonra dizine geri dönün ve phpunit kullanarak testi çalıştırın:

Hata! Az önce ne oldu? FAILURES! Bu ne kadar korkutucu görünse de aslında bunun olması tamamen normal. Sınıfımız iki farklı test tanımladı ve bunlardan biri, test edilen neliovat_get_vat fonksiyonumuz tarafından string argümanlarının da kabul edildiğini doğrulamaya çalışıyordu. Beklendiği gibi, 1.000€ ve 0.21 dizisini çarpmak beklenen sonucu vermiyor… ?
İşte ödeviniz geliyor: neliovat_get_iva yeniden yazın, böylece her iki test de geçer! Gelecek hafta çözümü paylaşacağım, ama bir dener misin?
Özetliyor
Bugün PHPUnit'in ne olduğunu ve WordPress eklentilerimizi ve temalarımızı test etmek için nasıl kullanabileceğimizi gördük. Esasen PHPUnit, PHP ile yazılmış (ayrıca) birim testleri kullanarak PHP kodumuzu oluşturmak, çalıştırmak ve doğrulamak için bir araçtır. Test ortamını nasıl kuracağımızı da öğrendik. Bu dünyadaki en karmaşık görev değil, ancak her şeyi hazır ve çalışır hale getirmeniz biraz zaman alıyor.
Umarım gönderiyi beğenmişsinizdir! Bir sonrakinde görüşmek üzere!
Öne Çıkan Resim Jessica C.
ev borcu WordPress sitesi