2013-12-20 172 views
8

我想知道:如何區分Symfony2中的單元測試和功能測試?

  1. 如果這是一個好主意,單獨的測試(單位| 功能...)在Symfony2中,
  2. ,應該怎樣分開

通過文件夾結構

tests 
|-- functional  
|-- unit 

通過配置在phpunit.xml

<testsuites> 
    <testsuite name="unit">...</testsuite> 
    <testsuite name="functional">...</testsuite> 
</testsuites> 

通過註釋

/** 
* @group unit  
*/ 
function testMyUnit() 

這是一個合理的方法?有這樣做的標準方式?什麼「級別」分開(單元>集成>功能)?如果我想用手動和最快速度進行這些測試並在Jenkins中獲得合理的覆蓋率報告,那麼如何利用這些優勢?

+0

將您的功能測試放入捆綁包的Controller文件夾的標準方法有什麼問題? –

+0

哪裏把集成測試(使用內核或容器爲例)或「功能代碼」從控制器中拿出來? – Koryonik

回答

5

你可以去兩個配置文件 - 一個用於功能,一個用於單元測試。然後你可以單獨運行你的單元測試。您希望單元測試儘可能快地運行,否則在開發時沒有人會運行它們,所以這種方法工作得很好。我們使用

phpunit -c app/phpunit.xml 
phpunit -c app/phpunit_functional.xml 

的目錄結構:

src/Namespace/Bundle/Tests/Unit/ 
src/Namespace/Bundle/Tests/Functional/ 

第二種方法是有一個配置文件並運行phpunit --testsuite unit

+0

這是如何跨多個捆綁工作的?每次添加/刪除軟件包時,是否必須更新全局phpunit文件? –