Sorun
Kod kalitemi artırmak için, en iyi ihtimalle vasat test çözümlerim yerine, Kodumu Birim Testi kullanarak nasıl test edeceğimi öğrenmeye karar verdim.
Ortak veritabanı işlevlerini elde etmeme olanak tanıyan kişisel bir kitaplık için besteci kullanarak PHPUnit'i kurmaya karar verdim. İlk başta PHPUnit için bir yapılandırma dosyam yoktu ve aşağıdaki gibi komutları çalıştırdığımda:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
Lütfen bunun bir terminal komutu olduğunu unutmayın, bu yüzden .php
uzantıyı eklemedim . Yukarıda atıfta bulunulan GeneralStringFunctionsTest aslında bir GeneralStringFunctionsTest.php
dosyadır.
Çıktı beklediğim gibi:
Zaman: 31 ms, Hafıza: 2.75Mb
Tamam (1 test, 1 onay)
Ardından, her seferinde dosyayı manuel olarak yazmak zorunda kalmadan, test paketini otomatik olarak yüklemek için bir yapılandırma dosyası kullanmayı denedim. phpunit.xml
Kök dizinimde adlı bir dosya oluşturdum ve şu dosyaya şunu girdim: http://pastebin.com/0j0L4WBD :
<?xml version = "1.0" encoding="UTF-8" ?>
<phpunit>
<testsuites>
<testsuite name="Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
Şimdi, komutu çalıştırdığımda:
phpunit
Aşağıdaki çıktıyı alıyorum:
Sebastian Bergmann ve katkıda bulunanlar tarafından PHPUnit 4.5.0.
/Users/muyiwa/Projects/DatabaseHelper/phpunit.xml'den okunan yapılandırma
Zaman: 16 ms, Hafıza: 1.50Mb
Test yapılmadı!
Yardımcı olması durumunda, dizin yapım şu şekildedir:
src - Üst düzey dizin (tüm kaynak kodumla birlikte)
testleri - Üst düzey dizin (tüm testlerimle, src klasörümle aynı şekilde yapılandırılmış )
satıcı - Composer üçüncü taraf dosyaları
Ayrıca composer json ve lock dosyamın yanı sıra phpunit xml dosyası dosya olarak en üst seviyede var.
Denediğim şeyler
- Dizini olarak
phpunit.xml
değiştirmetests/GeneralStringFunctions
- Dizini olarak
phpunit.xml
değiştirme./tests
phpunit.xml
Dosyayıtests
dizine taşımak ve ardından dizini./
yerine olacak şekilde değiştirmektests
.phpunit.xml
"Testler" i açık son ek olarak belirtmek için dizin etiketine bir sonek niteliği ekleme .
tests/GeneralStringFunctions/GeneralStringFunctionsTest
Bir klasör mü yoksa dosya adı mı?