Her ikisinde de tecrübesi olan birinin, varsa ikisi arasındaki önemli farka biraz ışık tutup tutamayacağını merak ediyordum.
Her birinin belirli bir duruma uygun olmasını sağlayan belirli bir gücü var mı?
Her ikisinde de tecrübesi olan birinin, varsa ikisi arasındaki önemli farka biraz ışık tutup tutamayacağını merak ediyordum.
Her birinin belirli bir duruma uygun olmasını sağlayan belirli bir gücü var mı?
Yanıtlar:
Bu soru oldukça eskidir, ancak hala trafik ve cevaplar aldığı için, benim açımdan burada tekrar belirtmeme rağmen, diğer (daha yeni) sorularda zaten yaptım.
SimpleTest'in hala phpunit'e bir alternatif olarak görülmesi beni gerçekten şaşırttı. Belki sadece yanlış bilgilendirildim ama gördüğüm kadarıyla:
web interface to phpunit tests
.Henüz SimpleTest lehine herhangi bir argüman görmedim. PHPUnit armut aracılığıyla kullanılabildiğinden, kurulumu daha da kolay değildir:
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
ve "ilk test" hemen hemen aynı görünüyor.
İtibariyle PHPUnit 3.7
öyle yüklemek daha kolay sadece kullanarak buPHAR Archive
wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar
veya pencereler için sadece indirirken phar ve koşma:
php phpunit-.phar
veya desteklenen composer yükleme yöntemlerini kullanırken
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
composer.json dosyanıza.
Test etmek istediğiniz her şey için PHPUnit'in bir çözümü olacak ve hemen hemen her yerde yardım bulabileceksiniz (SO, #phpunit irc kanalı freenode üzerinde, hemen hemen her php geliştiricisi;))
Yanlış bir şey belirttiysem veya unuttuysam lütfen düzeltin :)
Video: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/
Slaytlar: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011
Kendini çağıran Atoum gibi şeylerden bahsediyor : "PHP için basit, modern ve sezgisel bir birim test çerçevesi!"
Bu cevabı ilk olarak Ocak 2011'de yazdım, burada herhangi bir PHP Test projesiyle hiçbir bağlantım yoktu. O zamandan beri PHPUnit'e katkıda bulundum.
include
SimpleTest .PHP dosyalarını (diğerlerinin açıkladığı gibi) yüklemekten çok daha zordur . Kendi test ortamlarını oluşturan profesyonel programcılar için PHPUnit'i yenmek zor gibi görünse de, uygulama için "geliştiricilerin" en iyi ihtimalle "mesleki programcılar" olabileceği PHP tabanlı bir açık kaynaklı uygulamaya bir test sistemi entegre ediyorsanız , o zaman SimpleTest'in sadeliğinin bana gerçek bir çekiciliği var zaten. FWIW.
Şimdi PHPUnit'i tercih ediyorum, ancak başladığımda her zaman komut satırına erişemediğim için SimpleTest'i kullandım. SimpleTest güzeldir, ancak PHPUnit üzerinde gerçekten sahip olduğu tek şey bence web çalıştırıcısıdır.
PHPUnit'i sevmemin nedenleri , phing (SimpleTest'in yaptığı gibi), phpUnderControl ve Xinc gibi diğer PHP geliştirici araçlarıyla entegre olması . 3.0 sürümünden itibaren alay desteği var, aktif olarak geliştiriliyor ve dokümantasyon mükemmel.
Gerçekten bu soruyu kendiniz için cevaplamanın tek yolu, ikisini de bir süre denemek ve hangisinin tarzınıza daha uygun olduğunu görmektir.
DÜZENLEME: Phing artık SimpleTest ile de entegre oluyor.
Ancak SimpleTest'in nasıl kurulacağını kolayca anlayabildim.
( PHPUnit için talimatları hatırlayabildiğim kadarıyla , "PEAR ile kur ve başka bir şekilde nasıl yapılacağına dair herhangi bir talimat vermeyeceğiz" satırları boyunca bir şey söyledi) bkz:
İçin SimpleTest , sadece indirmek ve kodundan öyle gösteriyor.
Benim için en basit kazandı.
Baphled'in SimpleTest ve PHPUnit3 hakkında güzel bir makalesi var .
Kabul edilen cevapta belirtilen noktaların yarısı kesinlikle doğru değil:
SimpleTest vardır
Olumsuz tarafı:
SimpleTest'in PHPUnit'i kurmaktan daha kolay olduğunu buldum. Sadece çıkarın ve gitmekte fayda var. Bunun bir faydası, birden fazla makinede çalışmanızdır, çünkü tüm test çerçevesini kaynak kodunuzla aynı şekilde depolayabilir ve böylece aynı çerçeve kodunu kullandığınızı bilirsiniz. Özellikle herhangi bir şekilde değiştirirseniz.
Bu yüzden, SimpleTest'in bir gücünün çok hafif ve taşınabilir olması olduğunu söyleyebilirim.
SimpleTest ayrıca, isterseniz genişletmesi oldukça kolay olan çok basit bir HTML GUI ile birlikte gelir. Bildiğim kadarıyla, PHPUnit bir HTML GUI içermiyor, ancak Cool gibi indirilebilecek GUI'ler var .
PhpUnit web tabanlı bir UI test durumu çalıştırıcısı yaptım ve bunu sourceforge'da kullanıma sundum. Ajax kullanır ve oldukça güzel bir arayüze sahiptir, bir şans vermek istiyorsanız sourceforge'da kontrol edin. Proje adı phpunitwebui ve web sitesi http://phpunitwebui.sourceforge.net/
Belirtildiği gibi, her ikisi de onun için yazdığınız testleri çalıştıracağı ve sonuçları geri bildireceği için çoğunlukla bir tercih seçeneğidir.
En Basit web kullanıcı arayüzü çok kullanışlıdır, ancak bazen hantal da olabilir. Şu anki projemde, uygulamamın (bir API) web arayüzü ile çalışması için (apache'yi doğru bir şekilde kurmak, dosyaları public_html köküne kopyalamak vb.) İçin sisteme olduğundan daha fazla iş koymam gerekirdi. phpunit'i tutulma çalışma alanından çalıştırmak için. Bu nedenle PHPUnit'i seçiyorum. Ayrıca, güncellemeleri manuel olarak takip etmeniz gerekmediğinden PEAR kullanımı büyük bir artıydı. Arada bir çalıştırın pear upgrade
ve PHPUnit güncel kalacaktır.
Bu, çok sıradan bir PHP geliştiricisinin bakış açısından:
PHPUnit'i kavramam iki günümü aldı, çoğunlukla Eclipse altında hata ayıklamaya çalışırken sonunda vazgeçtim.
Eclipse altında hata ayıklama dahil Simpletest'i kurmak iki saatimi aldı.
Belki gelecekte Simpletest'in eksikliklerini bulabilirim ama şu ana kadar ihtiyacım olanı iyi yapıyor: TestClass'lar, Mock nesneleri, test kodu hata ayıklama ve durumun hızlı bir anlık görüntüsü için web arayüzü.
Yine: Bu, çok sıradan bir PHP kullanıcısının bakış açısından (geliştirici bile :-)
Simple Test'i bir süredir kontrol etmedim, en son benim için önemli bir faktör olan tutulma eklentisine sahipti, ancak uzun süredir güncellenmedi. Sebastian Bergmann hala çok aktif bir şekilde PHPUnit üzerinde çalışıyor, ancak yine de tutulma için iyi bir eklentiden yoksun - ancak yeni Zend Studio için dahil edildi.
Bu soru eski, ancak deneyimlerimi eklemek istiyorum: PHPUnit şu anda standart gibi görünüyor, ancak çok sayıda global değişken kullanan eski bir sistemle çalışıyorsanız, en baştan takılıp kalabilirsiniz. PHPUnit'te global değişkenlerle test yapmanın iyi bir yolu yok gibi görünüyor, her yerde global değişkenleri ayarlayan tonlarca dosyanız varsa, değişkenlerinizi $ GLOBALS ile belirlemeniz İYİ DEĞİLDİR. Tamam, bazıları sorunun eski sistemde olduğunu söyleyebilir ancak bu, bu tür bir sistem üzerinde test yapamayacağımız anlamına gelmez. SimpleTest ile böyle bir şey basittir. PHPUnit herhangi bir sınıf / işlev kapsamında değil de global olarak bir dosya eklememize izin veriyorsa, o zaman bu da çok fazla sorun olmazdı.
Başka bir umut verici çözüm de http://www.enhance-php.com , güzel görünüyor :)
<phpunit backupGlobals="false">
yapılandırma
global $xxx
ve tüm ek açıklamaları @backupGlobals @backupStaticAttributes @runInSeparateProcess @preserveGlobalState ve tüm kombinasyonlarını denemeden --no-globals-backup
ve birdenbire görmeden önce denedim. beklendiği gibi çalışıyor. : D
tek seferde test edilecek binlerce işlev olduğunda, phpunit gitme yoludur, basit test web tabanlı olduğu için yetersiz kalır.
Hala küçük ölçekli testler için basit web kullanıyorum.
Ama ikisi de iyi