2017-10-05 148 views
1

我正在開發一個Symfony項目。由於我需要進行單元測試,因此我從其網站下載並安裝了Phpunit 6.2.4。 然而,當我嘗試更新我的數據庫,我得到這個輸出Phpunit嘗試測試所有Symfony控制檯命令

php bin/console doctrine:schema:update --dump-sql 
PHPUnit 6.2.4 by Sebastian Bergmann and contributors. 

unrecognized option --dump-sql 

bin/console doctrine:schema:update 
Cannot open file "doctrine:schema:update.php". 

我試過其他控制檯命令,但結果是一樣的。基本上,我的猜測是,以某種方式Phpunit試圖測試每一個文件,所以我編輯了這樣的phpunit.xml文件,使用以前在其他項目中工作的文件。

<?xml version="1.0" encoding="UTF-8"?> 

<!-- http://phpunit.de/manual/4.1/en/appendixes.configuration.html --> 
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd" 
     backupGlobals="false" 
     colors="true" 
     bootstrap="app/autoload.php" 
> 
    <php> 
     <ini name="error_reporting" value="-1" /> 
     <server name="KERNEL_DIR" value="app/" /> 
    </php> 

    <testsuites> 
     <testsuite name="Project Test Suite"> 
      <directory suffix=".php">tests</directory> 
     </testsuite> 
    </testsuites> 

    <filter> 
     <whitelist> 
      <directory suffix=".php">src</directory> 
      <exclude> 
       <directory>src/*Bundle/Resources</directory> 
       <directory>src/*/*Bundle/Resources</directory> 
       <directory>src/*/Bundle/*Bundle/Resources</directory> 
      </exclude> 
     </whitelist> 
     <blacklist> 
      <directory>bin</directory> 
      <directory>docker</directory> 
     </blacklist> 
    </filter> 
</phpunit> 

據我所知,黑名單兩個單元和碼頭工人目錄應導致的PHPUnit沒有運行在他們裏面任何東西,但它仍然無法正常工作。

然後我檢查了我的symfony/phpunit-bridge的composer.json,刪除它並重試,但問題仍然存在。

有沒有人遇到過這個?

回答

0

黑名單似乎從代碼覆蓋代白名單中刪除目錄 - 但是如果src /不包含那些子目錄,所以它是多餘的 - 而且還會大大減慢添加和丟棄大量文件的速度。在一個項目中,我試圖將供應商列入黑名單,在開始運行測試之前,甚至需要一分鐘才能顯示最初的命令橫幅。

刪除<blacklist/>部分,其餘部分應該沒問題 - 如果您沒有提及bin /或docker /那麼PHPunit將不需要讀取這些文件,它也不會運行它們。

+0

這是*不是性能問題,Phpunit試圖測試每個命令,並將諸如doctrine:schema:update之類的參數視爲php文件。 – Trickylastname