Otomatik testler

PHPUnit, Kanboard’da otomatik testler yapmak için kullanılır.

Sonuçların her yerde aynı olduğundan emin olmak için farklı veritabanlarında (Sqlite, Mysql ve PostgreSQL) testler çalıştırabilirsiniz.

Gereksinimler

  • Linux/Unix machine
  • PHP
  • PHPUnit yüklü
  • Mysql ve Postgresql (isteğe bağlı)
  • Selenium (isteğe bağlı)
  • Firefox (isteğe bağlı)

Birim Testleri

Sqlite ile sınama

Sqlite testlerinde bellek içi bir veritabanı kullanılır, dosya sisteminde hiçbir şey yazılmaz.

PHPUnit yapılandırma dosyası tests/units.sqlite.xml. Kanboard dizininizden phpunit -c tests/units.sqlite.xml komutunu çalıştırın.

Örnek:

phpunit -c tests/units.sqlite.xml

PHPUnit 5.0.0 by Sebastian Bergmann and contributors.

...............................................................  63 / 649 (  9%)
............................................................... 126 / 649 ( 19%)
............................................................... 189 / 649 ( 29%)
............................................................... 252 / 649 ( 38%)
............................................................... 315 / 649 ( 48%)
............................................................... 378 / 649 ( 58%)
............................................................... 441 / 649 ( 67%)
............................................................... 504 / 649 ( 77%)
............................................................... 567 / 649 ( 87%)
............................................................... 630 / 649 ( 97%)
...................                                             649 / 649 (100%)

Time: 1.22 minutes, Memory: 151.25Mb

OK (649 tests, 43595 assertions)

Mysql ile Test

Localhost’da MySQL veya MariaDb yüklü olmalıdır.

Varsayılan olarak, bu kimlik bilgileri kullanılır:

  • Ana makine adı: localhost
  • Kullanıcı adı: kök
  • Şifre: yok
  • Veritabanı: kanboard_unit_test

Her yürütme için veritabanı silinir ve yeniden oluşturulur.

PHPUnit yapılandırma dosyası tests/units.postgres.xml dir. Kanboard dizininizden phpunit -c tests/units.postgres.xml komutunu çalıştırın.

Postgresql ile test edin

Postgresql’in localhost’a kurulmuş olması gerekir.

Varsayılan olarak, bu kimlik bilgileri kullanılır:

  • Ana makine adı: localhost
  • Kullanıcı adı: postgres
  • Şifre: yok
  • Veritabanı: kanboard_unit_test

Postgres kullanıcısının veritabanlarını oluşturup açmasına izin verdiğinizden emin olun. Veritabanı her yürütme için yeniden oluşturulur.

PHPUnit yapılandırma dosyası tests/units.postgres.xml dir. Kanboard dizininizden phpunit -c tests/units.postgres.xml komutunu çalıştırın.

Entegrasyon Testleri

Entegrasyon testleri esas olarak API’yi test etmek için kullanılır. Test paketleri, bir kapsayıcı içinde çalışan uygulamaya gerçek HTTP çağrıları yapıyor.

Gereksinimler

  • PHP
  • Composer
  • Unix işletim sistemi (Mac OS veya Linux)
  • Docker
  • Docker Compose

Uyum testlerini çalıştırmak

Entegrasyon testleri Docker konteynerlerini kullanıyor. Desteklenen her bir veritabanına karşı testleri çalıştırmak için kullanılabilecek 3 farklı ortam vardır.

Her bir test paketini çalıştırmak için aşağıdaki komutları kullanabilirsiniz:

# Run tests with Sqlite
make integration-test-sqlite

# Run tests with Mysql
make integration-test-mysql

# Run tests with Postgres
make integration-test-postgres

Kabul Deneyleri

Kabul testleri (bazen uçtan uca testler ve işlevsel testler olarak da bilinir), Selenium’u kullanan bir tarayıcıda UI’nın gerçek işlevselliğini test eder.

Bu testleri çalıştırmak için [Selenium Standalone Server] (http://www.seleniumhq.org/download/) ve Firefox’un uyumlu bir sürümü yüklü olmalıdır.

PHPUnit yapılandırma dosyası tests / acceptance.xml dir. Selenyum ve Kanboard uygulaması çalışıyorken, Kanboard dizininizden make test-browser komutunu çalıştırın. Bu, test paketini başlatacak ve Firefox’un otomatik olarak açıldığını göreceksiniz ve kabul testlerinde belirtilen işlemleri uygulayacaksınız.

Örnek:

$ make test-browser
PHPUnit 4.8.26 by Sebastian Bergmann and contributors.

..

Time: 5.59 seconds, Memory: 5.25MB

OK (2 tests, 5 assertions)

Travis-CI ile Sürekli Entegrasyon

Her taahhüt ana depoda itildikten sonra, birim testleri PHP’nin 3 farklı versiyonu boyunca yürütülür:

  • PHP 7.1
  • PHP 7.0
  • PHP 5.6

Travis yapılandırma dosyası .travis.yml , Kanboard’un kök dizininde bulunur.