PHPUnit - Testowanie stanu modułów i features

PHPUnit - Testowanie stanu modułów i features

W przykładowym projekcie dostępnym w Droptica Devserver jest prosty test wykonany w PHPUnit. Test ten jest uruchamiany przez Jenkins CI. Poniżej bardziej złożony kod testujący czy wszystkie moduły typu features mają status domyślny, czy wybrane moduły są włączony oraz czy wybrane moduły są wyłączone (np. moduły potrzebne tylko dla programisty powinny być wyłączone).

Najpierw pomocnicza funkcja zwracająca listę modułów typu features, które chcemy sprawdzić. Funkcje można umieścić w pliku sites/all/modules/custom/application/application.module

/** * List of all features. */ function application_features_list() { $features = array( 'application', 'application_admin', 'layout', 'userprofile', ); return $features; }

Poniżej przykład trzech testów w PHPUnit umieszczonych w pliku sites/all/modules/custom/application/tests/application.test

  • testFeaturesDefault - sprawdza czy moduły typu feature mają statuś domyślny
  • testModulesEnabled - sprawdza czy wybrane moduły są włączone
  • testModulesDisabled - sprawdza czy wybrane moduły są wyłączone (np. moduł Devel)

 

assertEquals(0, $status); } } public function testModulesEnabled() { $modules = application_features_list(); $modules[] = 'views'; $modules[] = 'token'; $modules[] = 'reroute_email'; $modules[] = 'context'; $modules[] = 'boxes'; foreach ($modules as $modules_name) { print "Test module enabled: $modules_name \n"; $this->assertEquals(TRUE, module_exists($modules_name)); } } public function testModulesDisabled() { $modules = array(); $modules[] = 'devel'; $modules[] = 'coder'; foreach ($modules as $modules_name) { print "Test module disabled: $modules_name \n"; $this->assertEquals(FALSE, module_exists($modules_name)); } } }