Drupal 8で組み込みのテスト駆動開発メソッドを試していますが、問題が発生しています。
CLIで./core/vendor/bin/phpunit --list-groups ./modules/
を実行しようとすると、次のエラーが発生します。
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
testsフォルダーに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
クラスが見つからないことは理解していますが、ガイドはそれでうまくいくはずなので、なぜそうではないのですか?
私の推測では、コアフォルダーにあるphpunit.xml.distファイルは含まれていません。
そこからテストを実行するか(./vendor/bin/phpunit ../modules/your_module)、またはそのファイルを-c
で指定します。
独自のphpunit.xml.distファイルを提供することもできます(例としてPaymentモジュールを参照)。その後、モジュールフォルダーからPHPUnitを実行できます。
今日、同じ問題に遭遇し、古いバージョンのPHP Unitを使用していることに気付きました。最新にアップグレードした後、テストは機能しました。