微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

我收到两个无法解决的不同错误,事件 avec 安装/更新:

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 Platform 框架默认使用 phpUnit 7.5,但部分测试函数使用 phpUnit 8。

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

clientID

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。