我有一個新的Laravel Boilerplate運行在Laravel Homestead環境中運行完美。 的php -v
命令返回我這個信息如何設置Laravel Boilerplate phpunit在Homestead環境中提供代碼覆蓋範圍
PHP 7.1.2-3+deb.sury.org~xenial+1 (cli) (built: Feb 22 2017 10:08:33) (NTS)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.2-3+deb.sury.org~xenial+1, Copyright (c) 1999-2017, by Zend Technologies
with blackfire v1.14.3~linux-x64-non_zts71, https://blackfire.io, by Blackfireio Inc.
我正在尋找如何設置PHPUnit的代碼覆蓋率的工作,發現我需要的XDebug,使其工作。 Google搜索了一下,發現了xon
homestead命令,它啓用了xDebug擴展。所以我跑了,並找到了Xdebug擴展已啓用,作爲一個新的php -v
顯示:
PHP 7.1.2-3+deb.sury.org~xenial+1 (cli) (built: Feb 22 2017 10:08:33) (NTS)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.2-3+deb.sury.org~xenial+1, Copyright (c) 1999-2017, by Zend Technologies
with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans
with blackfire v1.14.3~linux-x64-non_zts71, https://blackfire.io, by Blackfireio Inc.
而且我需要添加與composer require --dev phpunit/php-code-coverage:4.0.8
(具體版本的PHP代碼覆蓋率依賴,因爲我得到了一些需求錯誤同時試圖安裝最新的)。
然後我跑phpunit --coverage-clover=coverage.xml
,並得到了這個致命的錯誤:
PHPUnit 5.7.19 by Sebastian Bergmann and contributors.
PHP Fatal error: Uncaught Error: Class 'Breadcrumbs' not found in /home/vagrant/servirme/app/Http/Breadcrumbs/Backend/Access/User.php:3
Stack trace:
#0 /home/vagrant/servirme/app/Http/Breadcrumbs/Backend/Access.php(3): require()
#1 /home/vagrant/servirme/vendor/phpunit/php-code-coverage/src/CodeCoverage.php(1083): include_once('/home/vagrant/s...')
#2 /home/vagrant/servirme/vendor/phpunit/php-code-coverage/src/CodeCoverage.php(256): SebastianBergmann\CodeCoverage\CodeCoverage->initializeData()
#3 /home/vagrant/servirme/vendor/phpunit/phpunit/src/Framework/TestResult.php(650): SebastianBergmann\CodeCoverage\CodeCoverage->start(Object(AccessHelperTest))
#4 /home/vagrant/servirme/vendor/phpunit/phpunit/src/Framework/TestCase.php(860): PHPUnit_Framework_TestResult->run(Object(AccessHelperTest))
#5 /home/vagrant/servirme/vendor/phpunit/phpunit/src/Framework/TestSuite.php(722): PHPUnit_Framework_TestCase->run(Object(PHPUnit_Framework_TestResult))
#6 /home/vagrant/servirme/vendor/phpunit/phpunit/src/Framework/TestSuite.php(722): PHP in /home/vagrant/servirme/app/Http/Breadcrumbs/Backend/Access/User.php on line 3
Fatal error: Uncaught Error: Class 'Breadcrumbs' not found in /home/vagrant/servirme/app/Http/Breadcrumbs/Backend/Access/User.php on line 3
Error: Class 'Breadcrumbs' not found in /home/vagrant/servirme/app/Http/Breadcrumbs/Backend/Access/User.php on line 3
Call Stack:
0.0005 350872 1. {main}() /home/vagrant/servirme/vendor/phpunit/phpunit/phpunit:0
0.0736 562656 2. PHPUnit_TextUI_Command::main() /home/vagrant/servirme/vendor/phpunit/phpunit/phpunit:52
0.0736 562768 3. PHPUnit_TextUI_Command->run() /home/vagrant/servirme/vendor/phpunit/phpunit/src/TextUI/Command.php:116
0.3058 1886960 4. PHPUnit_TextUI_TestRunner->doRun() /home/vagrant/servirme/vendor/phpunit/phpunit/src/TextUI/Command.php:186
0.5521 1993968 5. PHPUnit_Framework_TestSuite->run() /home/vagrant/servirme/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:517
0.5558 1994968 6. PHPUnit_Framework_TestSuite->run() /home/vagrant/servirme/vendor/phpunit/phpunit/src/Framework/TestSuite.php:722
0.5598 1995536 7. PHPUnit_Framework_TestCase->run() /home/vagrant/servirme/vendor/phpunit/phpunit/src/Framework/TestSuite.php:722
0.5599 1995536 8. PHPUnit_Framework_TestResult->run() /home/vagrant/servirme/vendor/phpunit/phpunit/src/Framework/TestCase.php:860
0.5704 2003832 9. SebastianBergmann\CodeCoverage\CodeCoverage->start() /home/vagrant/servirme/vendor/phpunit/phpunit/src/Framework/TestResult.php:650
0.5704 2003832 10. SebastianBergmann\CodeCoverage\CodeCoverage->initializeData() /home/vagrant/servirme/vendor/phpunit/php-code-coverage/src/CodeCoverage.php:256
0.6267 2193768 11. include_once('/home/vagrant/servirme/app/Http/Breadcrumbs/Backend/Access.php') /home/vagrant/servirme/vendor/phpunit/php-code-coverage/src/CodeCoverage.php:1083
0.6278 2194104 12. require('/home/vagrant/servirme/app/Http/Breadcrumbs/Backend/Access/User.php') /home/vagrant/servirme/app/Http/Breadcrumbs/Backend/Access.php:3
我這是關係到Laravel外立面的感覺,這使我想到的PHPUnit沒有運行我的自動加載的文件,但屬性bootstrap="bootstrap/autoload.php"
默認存在於phpunit.xml
文件中。
不知道從哪裏出去,出了什麼錯誤的想法。
編輯: 我的家園的版本是5.1.0
沒有覆蓋的phpunit工作嗎?你有沒有嘗試在你的引導文件中添加'echo「Test \ n \ n」;'並在輸出中查找它? – dbrumann
是的,沒有代碼覆蓋它按預期工作。還沒有嘗試過,因爲'phpunit'命令正常工作 –