[英]Filesystem/directory layout for unit and functional tests with PHPUnit
我需要將集成測試添加到我的測試套件中。 盡管名稱為PHPUnit,但我發現這里對運行非單元測試有很多支持。 我的布局是這樣的:
<root>
lib/
Foo/
Component.php
tests/
lib/
Foo/
ComponentTest.php
resources/
fixtures/
在我看來,有三種方法可以在此處添加高於單元級別的測試:
<root>
tests/
unit/
lib/
Foo/
ComponentTest.php
integration/
lib/
Foo/
ComponentTest.php
resources/
fixtures/
這應該可以工作,除非現在沒有1:1類:測試類關系,這可能(並且可能會)使Netbeans迷惑。
<root>/tests/lib/Foo/ComponentIntegrationTest.php
與上述問題相同,目錄更少。
@group integration
類的符號將測試添加到現有測試類中 這樣可以保持1:1的關系,但是會大大增加測試套件的復雜性。 另外,由於需要在不斷變化的環境中調用SUT,因此我不能只重用單元測試中的_setup()。
有想法嗎?
單元測試用於隔離測試單個單元(類)。 集成測試旨在一起測試多個單元。 這樣,您可能在類和它們所屬的集成測試之間沒有1:1的相關性。
我將創建一個單獨的目錄結構(甚至可能是一個單獨的項目)來容納集成測試。 NetBeans將無法打開“測試”是一類屬於,因為它會屬於多個測試,但它會繼續開放其匹配的單元測試。
我們有一個單獨的項目,用於使用Selenium進行集成測試(在我到達之前稱為健全性測試),並且到目前為止效果很好。
更新資料
我們的集成測試的目錄布局非常簡單:每個站點一個目錄。 我們為站點提供了一個單一的代碼庫,並使用視圖允許單個站點覆蓋布局(不只是外觀)。 我沒有花很多時間在這些測試上。 將站點推送到登台服務器后,我們使用Selenium來運行測試。 我還沒有機會將它們連接到我們的持續集成服務器(Jenkins),但這將是理想的。
我建議按照您網站上的功能區域或模塊來組織它們。 通常,這取決於您對所測試項目的看法。 一個例子可能看起來像這樣:
src/
Model/
Cart.php
...
tests/
unit/
phpunit.xml
bootstrap.php
Model/
CartTest.php
...
integration/
account/
login/
register/
subscriptions/
products/
listing/
details/
search/
cart/
shop/
checkout/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.