Phpunit vs SimpleTest

10 Cevap php

Bu malzeme hem de deneyime sahip herkes ikisi arasındaki significant farkı biraz ışık tutabilir eğer varsa ben merak ediyorum?

Herhangi bir özel herhangi bir özel durum için uygun kılan, her gücü?

10 Cevap

Bu soru oldukça tarihli ama hala trafik ve cevap alma gibi ben olsa ben bile ben zaten diğer bazı (yeni) soruları üzerine yaptım burada tekrar benim açımdan devlet.

Ben really really baffled that SimpleTest still phpunit bir alternatif olarak kabul edilir. Belki sadece yanlış bilgilendirilmiş ama bildiğim kadarıyla gördüğümüz gibi değilim:

  • PHPUnit standarttır; En çerçeveler (hatta Symfony PHPUnit için Symfony 2 kendi Framework düşüyorsa Zend Framework (1 & 2), Cake, Agavi'nin gibi) kullanın.
  • PHPUnit her PHP IDE (Eclipse, Netbeans, Zend Stuide, PhpStorm) entegre ve güzel çalışıyor.
  • SimpleTest bir tutulma PHP 5.1 için uzantısını (aka eski) ve başka bir şey vardır.
  • Bu kod kapsamı ve test raporları için tüm standart günlük dosyalarını çıkışları beri PHPUnit her sürekli entegrasyon sunucusu ile çalışıyor.
  • SimpleTest değil. Bu size "sadece test" dur ve (Evet bu deyim :) kışkırtıcı çok ciddiye almayın) yazılım geliştirme başladığınızda size büyük zaman ısıracak onunla başlamak için büyük bir sorun olmasa da.
  • PHPUnit aktif korunur istikrarlı ve her kod temeli için büyük çalışır, her senaryo ve sizin testleri yazmak istediğiniz her şekilde.
  • ** SimpleTest eski, bakımsız ve üzerinde 2 yıl önce piyasaya PHP 5.3 ile iyi çalışmaz!.
  • (Öznel) PHPUnit provides much nicer kod kapsama raporları than Simpletest
  • PHPUnit ile aynı zamanda IDE içinde bu raporları almak (Netbeans, Eclipse, ...)
  • Ayrıca suggestings bir çift a web interface to phpunit tests için vardır.

Ben SimpleTest lehine herhangi bir argüman görmek için henüz ettik. PHPUnit armut üzerinden ulaşılabilir çünkü yüklemek bile basit değil:

pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit

ve "ilk test" hemen hemen aynı görünüyor.

Itibariyle PHPUnit 3.7 sadece kullanarak even easier to install bu kadar PHAR Archive

wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar

veya pencereler için sadece downloading phar ve çalışan:

php phpunit-.phar

ya da benzeri supported composer install yolları kullanırken

"require-dev": {
    "phpunit/phpunit": "3.7.*"
}

senin composer.json için.


Eğer phpunit sınamak istediğiniz her şeyin bir çözümü var olacak ve (hemen hemen her php geliştirici ;) SO, freenode # phpunit irc kanalı) hemen hemen her yerde bulmak için yardımcı olacaktır için

Yanlış bir şey ifade ya da bir şey unuttum varsa lütfen beni düzeltin :)

Overview of PHP Testing tools

Video: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/

Slaytlar: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011

Bu kendi kendini çağırır Atoum gibi şeyler bahseder: "PHP için basit, modern ve sezgisel birim test çerçevesi"


Full disclosure

Ben aslında bu cevabı ben herhangi bir PHP Test proje ile herhangi bir ilişkisi vardı Ocak 2011 yazdım. O zamandan beri ben PHPUnit bir katkı oldu.

Ben şimdi phpunit tercih ederim, ama ben başladığımda hep komut satırı erişimi yoktu gibi SimpleTest kullanılır. SimpleTest güzel, ama PHPUnit üzerinde gerçekten var olan tek şey, benim görüşüme göre, web koşucusu.

Ben phpunit gibi nedenler (SimpleTest yaptığı gibi), phpUnderControl gibi phing gibi diğer PHP geliştirici araçları ile entegre olması, ve Xinc. 3.0 sürümü gibi has mocking desteği, aktif geliştirilmektedir ve dokümantasyon mükemmel.

Gerçekten kendiniz için bu soruyu cevaplamak için tek yolu bir süre için dışarı hem de deneyin ve daha iyi uyan stili hangi görmektir.

EDIT: Phing şimdi de SimpleTest ile bütünleştirir.

Baphled SimpleTest vs PHPUnit3 güzel bir makale var.

  • Ben phpunit indirmek ve yüklemek için nasıl anlayamadık.
  • Ben, ancak, kolayca SimpleTest yüklemek nasıl anlayabilirdim.

    (As far as i can remember the instructions for PHPUnit said something along the lines of "install it via PEAR and we won't give any instructions on how to do it any other way") see:

  • http://www.phpunit.de/manual/current/en/installation.html

SimpleTest, sadece sizin kod ona indirmek ve nokta için.

Yani SimpleTest benim için kazandı.

Ben SimpleTest PHPUnit kurmak daha kolay bulundu. Sadece ayıklamak ve gitmek iyidir. Eğer bütün test çerçevesinin kaynak kodu olarak aynı şekilde saklayabilirsiniz yana, birden fazla makinede çalışan, ve böylece aynı çerçeve kodu kullanarak biliyorum eğer bu bir şeydir. Eğer herhangi bir şekilde değiştirmek özellikle.

Yani, SimpleTest bir gücü, çok hafif ve taşınabilir olduğunu söyleyebilirim.

Isterseniz uzatmak için oldukça kolay, çok basit bir HTML GUI ile SimpleTest da gemi. Bildiğim kadarıyla, PHPUnit bir HTML GUI içermez, ancak GUI vardır: indirmek için mevcut s gibi Cool gibi.

Evet bir phpunit web tabanlı kullanıcı arabirimi test case koşucusu yapılan ve sourceforge kullanılabilir yaptı. Ajax kullanır ve Sourceforge'daki kontrol denemek isterseniz de oldukça serin bir arayüze sahiptir. Proje adı phpunitwebui ve web sitesi http://phpunitwebui.sourceforge.net/ olduğunu

O işaret edildiği gibi, hem bunun için yazmak testleri çalıştırmak ve sonuçlarını rapor gibi, bu çoğunlukla bir tercih seçimdir.

SimpleTest Web arayüzü çok yararlıdır, ama aynı zamanda bazen hantal alabilirsiniz. Benim geçerli projede, ben o olurdu daha benim uygulama (API) (public_html kök, vb dosyaları kopyalamak doğru apache kurmak) web arayüzü ile çalışmak için bir sistem içine daha fazla iş koymak zorunda kalacaktı sadece Tutulma çalışma alanından phpunit çalıştırın. Bu nedenle phpunit seçin. Elle güncelleştirmeleri izlemek gerekmez beri Ayrıca, PEAR kullanımı büyük bir artı oldu. Sadece arada bir pear upgrade çalıştırın ve PHPUnit up-to-date tutulacaktır.

Bu soru eski, ama benim deneyim eklemek istiyorum: PHPUnit artık standart olacak gibi görünüyor, ama çok ve küresel değişkenler çok kullanan eski bir sistem ile çalışmak eğer, sen gitmek olsun gelen sıkışıp kalabilir. PHPUnit global değişkenler ile testler yapmak için iyi bir yol var gibi görünüyor, sen yerde genel değişkenleri ayarlamak dosyaları ton varsa NO GOOD doları GLOBALS üzerinden değişkenleri ayarlamak zorunda görünüyor. Tamam bazı sorun eski sistem olduğunu söyleyebiliriz ama biz böyle sistemde testler yapamayacağı anlamına gelmez. SimpleTest böyle bir şey basittir ile. Ben PHPUnit bize küresel bir dosya eklemek için izin verirse, hiçbir sınıf / fonksiyon kapsamında daha sonra çok fazla bir sorun da olmaz herhalde.

Başka bir gelecek vaat çözüm http://www.enhance-php.com, güzel :) görünüyor

Kabul cevap belirtilen puan yarısı basitçe doğru değildir:

SimpleTest var

  • kolay kurulum (klasör ve çalıştırmak için ekstresi)
  • basitçe (:) günümüzde PHPUnit ile bunu deneyin) sürüm kontrolü içine klasörünü kontrol edin
  • uzantıları az bağımlılıkları ve daha (webtester, formtester auth)
  • (noktalar, fonksiyon isimleri, renkleri) uzatmak kolaydır iyi bir kod kapsama muhabir,
  • Bir kod kapsama özeti (nihayet PHPUnit 4.x indi)
  • iyi bir web atlet ve gruplar ve tek dosya infaz bir ajax web koşucu,
  • (hiçbir boşluk veya satır sorunları ile) hala daha iyi fark aracı
  • phpunit ve tersi tarafından SimpleTests çalıştırmak için bir adaptör / sarıcı

Dezavantajı:

Bir phpunit basit entegrasyon için kullanabilirsiniz

https://github.com/MrDeLeTeD/Drupal7_PHPUnit