PHPUnitでTDDを試す


8

Drupal 8に組み込まれているテスト駆動開発メソッドを試してみましたが、問題が発生しています。

./core/vendor/bin/phpunit --list-groups ./modules/CLIで実行しようとすると、次のエラーが発生します。

PHPの致命的なエラー:10行目の/Applications/MAMP/htdocs/drupal/modules/custom_cookie_compliance/tests/CustomCookieComplianceTest.phpにクラス 'Drupal \ Tests \ UnitTestCase'が見つかりません

致命的なエラー:クラス10の/ Applications / MAMP / htdocs / drupal / modules / custom_cookie_compliance / tests / CustomCookieComplianceTest.phpにクラス 'Drupal \ Tests \ UnitTestCase'が見つかりません

私のモジュールフォルダーにcustom_cookie_complianceというモジュールフォルダーを作成しました。次に、以下を含むcustom_cookie_compliance.info.ymlファイルがあります。

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

また、srcフォルダーを含むテストフォルダーがあり、そこに次のコードを含むCustomCookieComplianceTest.phpファイルが含まれています。

<?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);
  }
}

このガイドに従ってコードを記述しました。

UnitTestCaseクラスが見つからないことは理解しましたが、ガイドはそれでうまくいくと言っていますが、なぜでしょうか?

回答:


11

私の推測では、コアフォルダーにあるphpunit.xml.distファイルは含まれていません。

そこからテストを実行するか(./vendor/bin/phpunit ../modules/your_module)、またはでそのファイルを指定します-c

独自のphpunit.xml.distファイルを提供することもできます(例としてPaymentモジュールを参照)。その後、モジュールフォルダーからPHPUnitを実行できます。


コアフォルダーから実行していないので、月曜日にチェックアウトする必要があります。問題の原因が何かのように思われます。
jzasnake 2015年

助けてくれてありがとう、確かに問題は解決しました!
jzasnake 2015年

2
本当にありがとう。これで問題が解決しました。これを見ている人のために、CLIからこのコマンドを実行しました:vendor / bin / phpunit -c web / core / phpunit.xml.dist web / modules / custom
Jorge Calderon

0

今日同じ問題に遭遇し、古いバージョンのPHPユニットを使用していることに気付きました。最新にアップグレードした後、テストは機能しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.