簡體   English   中英

使用Composer為項目運行所有PHPUnit測試

[英]Running all PHPUnit tests for a project using Composer

我有一組PHP項目,其中一些依賴於其他項目。 都有PHPUnit測試。 所有都可以通過Composer安裝,並使用composer.json文件指定它們的依賴項。 每個項目的根目錄都有一個phpunit.xml.dist文件,該文件指向一個bootsrap文件。

現在我有這個項目Foo,它有許多直接依賴和幾個間接依賴。 對於Foo的CI,我想運行它的所有測試,以及它的所有依賴項。

這可能通過Composer以某種方式完成嗎? 如果沒有,是否有一些標准干凈的方式這樣做?

我想你可以編寫一個包含所有內容的TestSuite,或者編寫一個腳本,遞歸地鑽入所有目錄以查找測試。

但是,通常情況下,您不會運行庫和依賴項的測試,除非您第一次安裝它們。 你沒有(讀:不應該)真正改變你的應用程序中的庫或依賴代碼(這有例外),所以一旦你安裝了依賴並運行它的測試,假設它們通過,它們應該總是通過,因為你沒有改變任何東西。

如果要更改依賴項代碼,則應該單獨執行此操作,尤其是在擁有依賴項的情況下。 我假設您會出於以下兩個原因之一來執行此操作:修復錯誤或添加功能。 打開依賴項的項目/文件,為更改編寫一個或多個測試,進行更改,確保測試通過,將更改提交到依賴項。 然后讓您的應用程序下拉更新的依賴項。

它的tl; dr是你不應該擔心運行庫或依賴性測試,因為那些應該是你在應用程序中沒有觸及的黑盒子。

Composer無法幫助您進行任何測試。

我懷疑它可以自動完成。 您事先不知道任何所需庫的測試位於何處。 甚至可能是測試未包含在已發布的庫版本中,因為它們不是直接用途。

如果您知道您的所有庫都確實將測試放在某處,那么您必須自己編寫代碼以在大型元測試中收集所有這些測試。 但我想知道這些是否真的有用。

我正在使用CI和Jenkins以及一些內部庫,當我在所需的庫中更改某些內容時,我設置了Jenkins來啟動依賴庫的測試。 依賴圖視圖插件正在幫助管理它。

你可以試試作曲家腳本

{
    "scripts": {
        "test": "phpunit"
    }
}

或者也許創建一個makefile ,然后使用composer調用它

{
    "scripts": {
        "build-all": "make build-all"
    }
}

暫無
暫無

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

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