TDD mit PHPUnit versuchen

8

Ich probiere die in Drupal 8 integrierte testgetriebene Entwicklungsmethode aus, stoße jedoch auf ein Problem.

Beim Versuch, ./core/vendor/bin/phpunit --list-groups ./modules/in meinem CLI ausgeführt zu werden , werden folgende Fehler angezeigt:

Schwerwiegender PHP-Fehler: Die Klasse 'Drupal \ Tests \ UnitTestCase' wurde in Zeile 10 nicht unter / Applications / MAMP / htdocs / drupal / modules / custom_cookie_compliance / tests / CustomCookieComplianceTest.php gefunden

Schwerwiegender Fehler: Die Klasse 'Drupal \ Tests \ UnitTestCase' wurde in Zeile 10 nicht unter / Applications / MAMP / htdocs / drupal / modules / custom_cookie_compliance / tests / CustomCookieComplianceTest.php gefunden

Ich habe in meinem Modulordner einen Modulordner mit dem Namen custom_cookie_compliance erstellt. Im Gegenzug habe ich eine custom_cookie_compliance.info.yml-Datei, die Folgendes enthält.

 name: Custom Cookie Compliance
 description: Displays a cookie compliance information window at the top of the website.
 core: 8.x
 type: module

Ich habe auch einen Test Ordner einen enthielt src Ordner , die dann eine CustomCookieComplianceTest.php - Datei mit dem folgenden Code enthält.

<?php
namespace Drupal\custom_cookie_compliance\Tests;

use Drupal\Tests\UnitTestCase;

/**
 * @group cookie
 */

class CustomCookieComplianceTest extends UnitTestCase {
  public function testSetCookies() {
    if (!isset($cookie_set)) {
      $cookie_set = TRUE;
    }

    $this->assertTrue($cookie_set);
  }
}

Ich habe den Code anhand dieser Anleitung geschrieben .

Ich verstehe, dass es die UnitTestCaseKlasse nicht finden kann , aber der Leitfaden sagt, dass dies funktionieren sollte. Warum also nicht?

jzasnake
quelle

Antworten:

11

Ich vermute, dass Sie die Datei phpunit.xml.dist, die sich im Kernordner befindet, nicht einschließen.

Führen Sie entweder Tests von dort aus (./vendor/bin/phpunit ../modules/your_module) oder geben Sie diese Datei mit an -c.

Sie können auch Ihre eigene Datei phpunit.xml.dist bereitstellen (siehe das Zahlungsmodul als Beispiel). Dann können Sie PHPUnit in Ihrem Modulordner ausführen.

Berdir
quelle
Ich habe es nicht aus dem Kernordner ausgeführt, wie Sie sagen, also muss ich es am Montag überprüfen. Ich melde mich dann bei Ihnen! Es klingt so, als ob es das sein könnte, was das Problem verursacht.
Jzasnake
Hey danke für die Hilfe, es hat sicherlich das Problem gelöst!
Jzasnake
2
Vielen Dank. Dies hat mein Problem behoben. Für diejenigen, die sich das ansehen, habe ich diesen Befehl über die CLI ausgeführt: vendor / bin / phpunit -c web / core / phpunit.xml.dist web / modules / custom
Jorge Calderon
0

Ich bin heute auf dasselbe Problem gestoßen und habe festgestellt, dass ich eine ältere Version von PHP Unit verwendet habe. Nach dem Upgrade auf den neuesten Stand funktionierten die Tests.

albertski
quelle