簡體   English   中英

在單個類中為Symfony WebTestCase(PHPUnit)設置測試執行的順序

[英]Set order of test execution in a single class for Symfony WebTestCase (PHPUnit)

我正在將測試范圍添加到Symfony內置的API中。 我有一個ApiControllerTest ,它擴展了Symfony的WebTestCase ,並在API控制器的不同控制器動作上執行測試。 請注意,這些是功能測試,因此它們正在調用控制器路由並將其保存到數據庫。

我希望測試按特定順序運行。 例如,有一些API方法可以保存一個項目,將該項目與另一個項目匹配,對該項目添加需求,刪除該項目等。我知道單元測試不應相互依賴,但功能測試似乎可以相互依賴。 與其設置和拆除在每次測試之前和之后手動添加/刪除項目的方法,不如將其保存在第一個測試中,然后再對該項目進行后續測試的更新,刪除等,效率將大大提高。 。

我查看了“按特定順序運行PHPUnit測試”並嘗試使用@depends批注,但這不起作用(我沒有嘗試將一項測試的結果傳遞給另一項)。 另外,我已經看到您可以指定單獨的類的運行順序,但是這些測試似乎都是相關的,屬於一個類,因為它們正在測試單個控制器(我通常每個控制器都有一個測試類)我正在測試的服務類,服務類等)

有沒有一種方法可以使用PHPUnit或Symfony的WebTestCase來指定特定類中的測試應運行的順序? 還是我在這里偏離設計模式,需要使用其他方法?

即使您考慮了它但沒有那樣做, @depends仍然是您所需要的。 它不僅意味着傳遞值,而且還滿足您的確切需求。

同樣,即使測試正常運行,因此您也不必在測試之間傳遞對象或數據,但返回值對於傳遞在上一個測試中創建的實體的ID很有用,以便在下一個測試中加載它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM