phpunit会导致未定义的方法错误 - 覆盖文本(使用PCOV)

发布于 2025-02-03 02:15:48 字数 2078 浏览 3 评论 0原文

我正在尝试通过PCOV&我在Docker上的Laravel项目的phpunit。

我得到一个错误PHP致命错误:未定义的错误:对未定义的方法致电\ Container \ Container \ Container :: basepath()当我添加- Coverage-text时。 没有- Coverage-Text没有错误。

我应该做什么来解决这个问题?

  • 的情况 - 覆盖范围 - 文本
# php -d pcov.enabled=1 ./vendor/bin/phpunit --coverage-text tests/Unit/path/to/my/file
PHPUnit 8.5.9 by Sebastian Bergmann and contributors.

PHP Fatal error:  Uncaught Error: Call to undefined method Illuminate\Container\Container::basePath() in /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:192
Stack trace:
#0 /var/www/html/laravel/app/Some/MyClass.php(5): base_path('vendor/autoload...')
#1 /var/www/html/laravel/vendor/phpunit/php-code-coverage/src/CodeCoverage.php(955): include_once('/var/www/html/...')
#2 /var/www/html/laravel/vendor/phpunit/php-code-coverage/src/CodeCoverage.php(239): SebastianBergmann\CodeCoverage\CodeCoverage->initializeData()
#3 /var/www/html/laravel/vendor/phpunit/phpunit/src/Framework/TestResult.php(646): SebastianBergmann\CodeCoverage\CodeCoverage->start(Object(Tests\Unit\Path\To\My\File))
#4 /var/www/html/laravel/vendor/phpunit/phpunit/src/Framework/TestCase.php(763): PHPUnit\Framework\TestResult->run(Object(Tests\Unit\Path\To\My\File))
#5 /var/www/html/laravel/vendor/php in /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 192
  • 没有的情况 - 覆盖范围 - 文本
# php -d pcov.enabled=1 ./vendor/bin/phpunit tests/Unit/path/to/my/file
PHPUnit 8.5.9 by Sebastian Bergmann and contributors.

...........                                                       11 / 11 (100%)

Time: 45.6 seconds, Memory: 64.50 MB

OK (11 tests, 291 assertions)

版本:

  • PHP:7.4.29
  • Laravel:6.20.3
  • PCOV:1.0.11
  • xdebug:3.1.4

我在Dockerfile中安装了PCOV。

RUN yes | pecl install pcov && docker-php-ext-enable pcov

I'm trying to get coverage with pcov & PHPUnit for my Laravel project on docker.

I get an error PHP Fatal error: Uncaught Error: Call to undefined method Illuminate\Container\Container::basePath() when I add --coverage-text.
No error occurs without --coverage-text.

What should I do to fix this?

  • Case with --coverage-text
# php -d pcov.enabled=1 ./vendor/bin/phpunit --coverage-text tests/Unit/path/to/my/file
PHPUnit 8.5.9 by Sebastian Bergmann and contributors.

PHP Fatal error:  Uncaught Error: Call to undefined method Illuminate\Container\Container::basePath() in /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:192
Stack trace:
#0 /var/www/html/laravel/app/Some/MyClass.php(5): base_path('vendor/autoload...')
#1 /var/www/html/laravel/vendor/phpunit/php-code-coverage/src/CodeCoverage.php(955): include_once('/var/www/html/...')
#2 /var/www/html/laravel/vendor/phpunit/php-code-coverage/src/CodeCoverage.php(239): SebastianBergmann\CodeCoverage\CodeCoverage->initializeData()
#3 /var/www/html/laravel/vendor/phpunit/phpunit/src/Framework/TestResult.php(646): SebastianBergmann\CodeCoverage\CodeCoverage->start(Object(Tests\Unit\Path\To\My\File))
#4 /var/www/html/laravel/vendor/phpunit/phpunit/src/Framework/TestCase.php(763): PHPUnit\Framework\TestResult->run(Object(Tests\Unit\Path\To\My\File))
#5 /var/www/html/laravel/vendor/php in /var/www/html/laravel/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 192
  • Case without --coverage-text
# php -d pcov.enabled=1 ./vendor/bin/phpunit tests/Unit/path/to/my/file
PHPUnit 8.5.9 by Sebastian Bergmann and contributors.

...........                                                       11 / 11 (100%)

Time: 45.6 seconds, Memory: 64.50 MB

OK (11 tests, 291 assertions)

Versions:

  • PHP: 7.4.29
  • Laravel: 6.20.3
  • pcov: 1.0.11
  • Xdebug: 3.1.4

I installed pcov with pecl in Dockerfile.

RUN yes | pecl install pcov && docker-php-ext-enable pcov

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文