2017-04-17 22 views
1

Laravel Homesteadの環境で動作する新鮮なLaravel Boilerplateがあります。 php -vコマンドは、私は、セットアップPHPUnitのコードカバレッジが動作するようにする方法を探していた私は、この情報ホームステッド環境でコードカバレッジを提供するためのLaravel Boilerplate phpunitの設定方法

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. 

を返す、と私はそれを動作させるためには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考えるように私をリードしたが、属性デフォルトではphpunit.xmlファイルにbootstrap="bootstrap/autoload.php"が存在します。

ここからどこへ行くのか、何が間違っているのか分かりません。

EDIT: マイホームステッドバージョンは、新鮮なボイラープレートがインストール5.1.0

+0

カバレッジなしのphpunitは動作しますか?あなたのブートストラップファイルに 'echo"テストを追加しようとしましたが、\ n \ n ";"を出力で探しましたか? – dbrumann

+0

ええ、コードカバレッジなしで期待どおりに動作します。 'phpunit'コマンドが正常に動作するので試してみませんか –

答えて

0

phpunit.xmlファイルが付属しています。その中に、このデータのフィルタタグがある

<filter> 
    <whitelist processUncoveredFilesFromWhitelist="true"> 
     <directory suffix=".php"> 
      ./app 
     </directory> 
    </whitelist> 
</filter> 

私はPHPUnitの専門家ではないので、私は、XMLと少しを果たした、とwhitelistタグは、それが破損する原因となったことがわかりました。私はそれをもう少し演奏し、processUncoveredFilesFromWhitelist="true"属性を削除すると、phpunitコマンドを実行し、必要なコードカバレッジを生成できることがわかりました。


ちょっとメモ。

残念ながら、コードカバレッジテストでは約1.5分かかっていましたが、このトリックでコードカバレッジをオンにしてもテストには約11分かかります。

質問がコードカバレッジレポートを生成することに関連しているので、これを受け入れたものとしてマークし、私と同じ問題を持つ人を助けるかもしれないものがあれば、この質問を更新します。

関連する問題