2017-03-01 19 views
0

composer.json避免執行外部插件測試用例

"require": { 
     "php": ">=5.6.4", 
     "laravel/framework": "5.4.*", 
     "laravel/socialite": "^3.0", 
     ... 
     "chencha/share": "^5.2" 
    }, 
    "require-dev": { 
     "fzaninotto/faker": "~1.4", 
     "mockery/mockery": "0.9.*", 
     "phpunit/phpunit": "~5.7" 
    }, 
    ... 
    "autoload-dev": { 
     "psr-4": { 
      "Tests\\": "tests/" 
     } 
    }, 

phpunit.xml

<phpunit backupGlobals="false" 
     backupStaticAttributes="false" 
     bootstrap="bootstrap/autoload.php" 
     colors="true" 
     convertErrorsToExceptions="true" 
     convertNoticesToExceptions="true" 
     convertWarningsToExceptions="true" 
     processIsolation="false" 
     stopOnFailure="false"> 
    <testsuites> 
     <testsuite name="Application Test Suite"> 
      <directory suffix="Test.php">./tests</directory> 
     </testsuite> 
    </testsuites> 
    <filter> 
     <whitelist processUncoveredFilesFromWhitelist="true"> 
      <directory suffix=".php">./app</directory> 
     </whitelist> 
    </filter> 
    <php> 
     <env name="APP_ENV" value="testing"/> 
     <env name="CACHE_DRIVER" value="array"/> 
     <env name="SESSION_DRIVER" value="array"/> 
     <env name="QUEUE_DRIVER" value="sync"/> 
    </php> 
</phpunit> 

當我運行phpunit它給了我下面的錯誤

PHP Fatal error: Class 'Orchestra\Testbench\TestCase' not found in /usr/lib/php5/voice/v1.5/vendor/chencha/share/tests/TestCase.php on line 3

我可以在我的require-dev下添加"orchestra/testbench": "~3.0"這將解決問題,但是有沒有辦法只運行我的測試用例而無需插件的測試用例?

回答

0

發現此問題。我沒有添加namesapce use Tests\TestCase;,因爲它擴展了外部插件的TestCase類。我的壞,浪費了很多時間。

0

在標準配置中,不運行供應商目錄中的測試。你顯示的phpunit.xml看起來很正常,所以你應該確保你在有效的目錄下運行測試。當您運行測試時,您應該在主應用程序目錄中(查看您的錯誤應該是/usr/lib/php5/voice/v1.5/)。

+0

嗨,是的,我在運行'phpunit'時在主應用程序中。以下是'/ usr/lib/php5/voice/v1.5/vendor/chencha/share/tests/TestCase.php'文件中的內容。 'TestCase類擴展了Orchestra \ Testbench \ TestCase {}'。沒有測試用例,只有類聲明。 –

+0

嗨發現這個問題。感謝這個聲明'在標準配置中沒有運行供應商目錄的測試「,這有助於我進行不同的思考。很長一段時間,我正在調試運行供應商測試用例的視圖。 :) –