2013-05-31 188 views
3

我已經在php unit first test symfony上發佈了這個問題 我通過作曲者安裝了phpunit作爲每個項目的安裝。 嘗試vendor/bin>phpunit -c ../../app每件事情都可以,我得到了肯定的答案。 而此命令給出測試目錄中所有測試的答案。從控制檯設置phpunit命令symfony

但我希望結果能夠單獨進行每項測試。 當試圖/vendor/bin>phpunit -c ../../src/xxx/Bundle/tests/entity/yyy.php,我得到以下信息:could not load c:\wamp\www\symfony\src/xxx/Bundle/tests/entity/yyy.php Parse PI : PI php never end ... Start ttag expected, '<' not found

,並試圖/vendor/bin>phpunit -c ../../src/xxx/Bundle/tests/entity/yyy的時候,我得到以下信息:could not read "..\..\src/xxx/Bundle/tests/entity/yyy"

任何人可以幫助我知道我應該怎麼寫命令,並從那裏執行呢? ?? 任何想法???

+0

我應該添加一些東西給我的路徑變量,以使phpunit正常工作? –

回答

12

請勿在此處使用-c選項。 -c選項是--configuration的快捷方式,它指向PHPunit配置文件的目錄(如app/phpunit.xml.dist)。該配置告訴PHPunit在哪裏查找測試類和其他一些配置,如引導文件。

如果您想要針對特定​​測試運行測試,您可以像phpunit path/to/tests/MyTest.php那樣執行測試。但是,那麼你會放棄自動加載。爲了恢復,您可以使用--bootstrap選項指向引導文件。所以這將是phpunit --bootstrap vendor/autoload.php path/to/tests/MyTest.php

如果您希望更頻繁地運行此命令,可以更好地編輯app/phpunit.xml.dist文件並創建一個新的套件:

<?xml version="1.0" encoding="utf-8" ?> 
<phpunit ...> 
    <!-- ... --> 

    <testsuites> 
     <testsuite name="MyBundle"> 
      <file>path/to/tests/MyTest.php</file> 
     </testsuite> 
    </testsuites> 

    <!-- ... --> 
</phpunit> 

然後運行:phpunit -c app --testsuite MyBundle

+0

但我應該從哪裏執行這個命令我的意思是從哪個目錄?它應該是應用程序還是供應商? –

+0

@hjfcbHfhbv項目根目錄 –

+0

項目根目錄是什麼意思? –

0

正巧我也一樣,但在事實上,我們誤讀的文檔,你在命令行看看遺忘「應用」:

phpunit -c app src/AppBundle/Tests/Util/CalculatorTest.php 

注意在應用程序參數命令句。