Drupal 8 uzupełnia framework testowy oparty na Simpletest o PHPUnit , a Simpletest można usunąć w Drupal 9.
Nie aktualizuję jeszcze do Drupal 8, ale zastanawiałem się, jak napisać istniejące testy w PHPUnit (aby podążać za trendem) dla Drupal 7 zamiast w Simpletest?
Czy jest jakaś metoda lub moduł do integracji PHPUnit z Drupal 7?
Istnieje kilka takich jak phpunit lub drunit , ale nie są one przeznaczone dla Drupal 7.
Odpowiedzi:
Możesz uruchomić testy PHPUnit, ładując Drupala w każdym z plików testowych. To nie jest idealne, ale działa.
źródło
PHPUnit zapewnia ładne API do budowania obiektów, podczas gdy najprostszy Drupal nie. W gist dostępna jest jedna biblioteka do integracji PHPUnit z Drupal 7 .
Aby wykonać te skrypty, musisz sprawdzić to repozytorium gist . Aby wykonać testy jednostkowe w wierszu poleceń, po prostu przejdź do strony Drupal (tj.
<DRUPAL_ROOT>/sites/default
) I użyj dphpunit.bash, tak jak zrobiłbyś to z poleceniem phpunit.Skrypt składa się z 3 plików:
Źródło: http://devblog.more-onion.com/content/writing-unit-tests-drupal-7
bootstrap.inc.php
dphpunit.bash
drun-phpunit.php
Dostępna jest jeszcze jedna biblioteka do integracji PHPUnit z Drupal 7: https://github.com/sebastianbergmann/phpunit
Więcej informacji o tych skryptach można sprawdzić tutaj: http://thomaslattimore.com/blog/using-phpunit-with-drupal-7
źródło
Istnieje obejście problemu z plikiem konfiguracyjnym.
Gist: https://gist.github.com/permanovd/cb9c02920c49a29c97653f4f697147b1
To wszystko. Teraz możesz rozpocząć testy na kilka sposobów.
1. CLI
phpunit -c phpunit.xml.dist QuestionValidationValueOptionsInputTest /yoursite.dir/public_html/profiles/standard/modules/some_module/tests/QuestionValidationTest.php
gdzie:
2. IDE (phpstorm)
Musisz dodać konfigurację testową
I nie ma potrzeby dołączania kodu startowego Drupal do każdego testu.
Uwaga
Możesz mieć problemy z testami z powodu niewłaściwej wersji php twojego środowiska.
Dalsza lektura:
https://phpunit.de/manual/current/en/organizing-tests.html
źródło