执行 php vendor/bin/simple-phpunit 时未定义方法 ArraySubsetLegacy::exporter()

Undefined method ArraySubsetLegacy::exporter() when executing php vendor/bin/simple-phpunit

我正在探索 API 平台,我现在正处于“测试 API”步骤。

我遇到了两个不同的错误,我无法解决,事件 avec a composer install / update :

1) App\Tests\BooksTest::testGetCollection
Error: Call to undefined method ApiPlatform\Core\Bridge\Symfony\Bundle\Test\Constraint\ArraySubsetLegacy::exporter()

/srv/api/vendor/api-platform/core/src/Bridge/Symfony/Bundle/Test/Constraint/ArraySubsetTrait.php:76
/srv/api/vendor/api-platform/core/src/Bridge/Symfony/Bundle/Test/Constraint/ArraySubsetTrait.php:84
/srv/api/vendor/api-platform/core/src/Bridge/Symfony/Bundle/Test/Constraint/ArraySubsetTrait.php:68
/srv/api/vendor/api-platform/core/src/Bridge/Symfony/Bundle/Test/Constraint/ArraySubsetLegacy.php:32
/srv/api/vendor/api-platform/core/src/Bridge/Symfony/Bundle/Test/ApiTestAssertionsTrait.php:100
/srv/api/vendor/api-platform/core/src/Bridge/Symfony/Bundle/Test/ApiTestAssertionsTrait.php:57
/srv/api/tests/BooksTest.php:26

4) App\Tests\BooksTest::testUpdateBook
TypeError: Argument 2 passed to ApiPlatform\Core\Bridge\Symfony\Bundle\Test\Client::request() must be of the type string, null given, called in /srv/api/tests/BooksTest.php on line 103

/srv/api/vendor/api-platform/core/src/Bridge/Symfony/Bundle/Test/Client.php:88
/srv/api/tests/BooksTest.php:103

有什么想法吗?

谢谢:-)

根据 this issue on API Platform,API 平台框架默认使用 phpUnit 7.5,但一些测试功能使用 phpUnit 8。

您可以将 SYMFONY_PHPUNIT_VERSION 设置为 8.3 作为环境变量,但这在我的情况下不起作用。我必须编辑 api/phpunit.xml.dist 并将其中的值更改为如下所示:

<server name="SYMFONY_PHPUNIT_VERSION" value="8.3" />