Php cli ile bir test ortamı yaratmak

4 Cevap php

Ben konsol modunda php kullanmak ve benim fonksiyonlarını test etmek için bir ortam oluşturmak istiyorum.

Ben bir web tarayıcı kullanmak ve yeni bir dosya ben bir işlevi sınamak istediğiniz her zaman yaratmak zorunda olmak istemiyorum.

Ben konsolda işleve erişmek ve daha sonra sonuca dönmek istiyorum.

Bunu nasıl yaparsınız?

Update:

Belki kötü açıklamıştım. Ben sadece işlevin dönüşünü sonuç görmek istiyorum.

Belki birim test öğrenmek zorunda ama şu an için ben sadece bana tek tek tüm fonksiyonlarını test sağlayan interaktif bir konsol istiyorum.

Benim durumumda wordpress fonksiyonları (Ben daha sonra düzenli bir .php dosya ve dosyayı ayrıştırmak için bir tarayıcı ile bunu nasıl biliyorum) yüklemek zorunda ama php ile bunu yapmak mümkün olup olmadığını ben değil Komut satırından.

4 Cevap

Ben geçmişte phpsh kullanılan ve çok yararlı bulduk. Bunu başladıktan sonra chdir() dosyaları nerede ve sonra tabii ki require() fonksiyonları içeren herhangi bir dosya test etmek gerekir gerekir. Daha sonra sadece kabuk örneğin içine yazarak işlev çağrıları test edebilirsiniz var_dump(some_function(1, 2));

Ben tam olarak ne tür fonksiyon daha spesifik olması ettik sanırım. Wordpress bu kutunun dışında, çoğu PHP uygulamalar olmaz gibi bir şey sağlamaz.

Ben de bu tür uygulamalar bu tür ortamlar için akılda gelişmediği zaman burada sorun çağrısında düşünüyorum.

İşte functions.php ve ben sadece gerçekleştirmek için yapmak zorunda girişimlerine karşı bu şekilde çalışmaz ") (CURRENT_TIME" aramaya çalışırken bir örnek:


php -r 'require "functions.php"; var_dump(current_time("mysql"));'

verir


Fatal error: Call to undefined function apply_filters() in functions.php on line 346

Çalışıyor


php -r 'require "functions.php"; require "plugin.php"; var_dump(current_time("mysql"));'

verir


Fatal error: Call to undefined function wp_cache_get() in functions.php on line 351

Çalışıyor


php -r 'require "functions.php"; require "plugin.php"; require "cache.php"; var_dump(current_time("mysql"));'

verir


Fatal error: Call to a member function get() on a non-object in cache.php on line 93

Gördüğüm kaynağında son hata bakıyor


 function wp_cache_get($id, $flag = '') {
     global $wp_object_cache;

     return $wp_object_cache->get($id, $flag);
 }

Global değişkenleri kullanan diğer ortamlarda eğer bir PİDE imkansız olarak test yapar.

Bu yapmak için çalışıyoruz ne değildir, size söz ayrıntılı / daha spesifik olması ettik.

Eğer genel bir anlamda "Birim Testi" okumak ve sonra denemek ve PHP bunları uygulamak istediğiniz gidiyoruz.

(Varsa) kullanarak çerçeve, kod stil ve çalıştırmak istediğiniz testleri kullanmak için gereken tam yöntemleri belirlemek için gidiyoruz. Sadece İlk Birim Testleri kavramını anlama ve kodlama en iyi uygulamaları içine uygulayarak bu konuda ilerleme yapmak mümkün olacak.

Nasıl hakkında:

php -a

Eğer taleb desteği ile php derlemek Ve eğer daha süslü olacak.