2014-12-28 31 views
4

Laravel有可能根據它們所在的文件夾運行單元測試嗎?Laravel:將測試組織到文件夾並運行它們

目前,phpunit.xml指定/作爲根目錄的單元測試測試

... 
<testsuites> 
    <testsuite name="Application Test Suite"> 
     <directory>./app/tests/</directory> 
    </testsuite> 
</testsuites> 
... 

測試經由CLI跑了phpunit命令。我想測試組織在若干子文件夾,如:

/測試

  • /單元
  • /集成

所以我只能從運行測試指定的子文件夾如:phpunit integration

我嘗試了上述方法,但是框架假定「集成」是不存在的PHP文件的名稱。

如何實現我的目標?

回答

17

這實際上與Laravel無關。這只是PHPUnit。

您可以定義testsuites並按名稱執行它們。

<testsuites> 
    <testsuite name="unit"> 
     <directory>./app/tests/unit/</directory> 
    </testsuite> 
    <testsuite name="integration"> 
     <directory>./app/tests/integration/</directory> 
    </testsuite> 
</testsuites> 

然後運行phpunit --testsuite integration

+0

我加入這兩個測試包的默認值。現在,'phpunit'觸發所有測試(root和子文件夾)。但是,'phpunit集成'仍然會**無法打開文件「integration.php」**。 – lesssugar

+1

哎呦我的壞!你需要用'phpunit --testsuite integration'來運行它。更新我的回答 – lukasgeiter

+0

是的,它的工作:) – lesssugar

相關問題