PHP測試第五部分(單元測試引數詳解)

2021-09-12 19:38:15 字數 2817 閱讀 1564

單元測試常用引數

使用--filter引數指定單元測試執行的函式

vendor\bin\phpunit  --filter test_oper
使用--coverage-html引數指定生成**覆蓋率的html檔案目錄

vendor\bin\phpunit --coverage-html  /tmp/log/phpunit
vendor\bin\phpunit --stop-on-error
第一次出錯或失敗時停止

vendor\bin\phpunit --stop-on-failure
--bootstrap引數常常在測試執行前 先載入指定的依賴檔案 常常是composer裡的autoload.php檔案

vendor\bin\phpunit --bootstrap /vendor/autoload.php
--configuration或者-c引數指定對應的phpunit.xml檔案的路徑

vendor\bin\phpunit --debug
vendor\bin\phpunit -d key[=value]
使用@dataprovider在測試函式的注釋中指明測試的資料提供函式 並依次接收所有引數,每組引數的

最後乙個是期待的結果值

class

calccontrollertest

extends

testcase

/** * @dataprovider operprider

*/public

function

testoper($a

,$b,$c

,$expected

)public

function

operprider()

}

更多細節參考:

注釋名稱

注釋說明

@author@group的別名

@group設定測試使用組

@afterclass指明此靜態方法應該於測試類中的所有測試方法都執行完成之後呼叫

@before指明此方法應當在測試用例類中的每個測試方法開始執行之前呼叫

@beforeclass指明此靜態方法應該於測試類中的所有測試方法都執行完成之前呼叫

@covers指明測試方法想要對哪些方法進行測試

@covers classname::methodname指明所標註的測試方法覆蓋指定的方法。

@covers classname指明所標註的測試方法覆蓋給定類的全部方法。

@covers classname指明所標註的測試方法覆蓋給定類以及其所有父類與介面的全部方法。

@covers classname::指明所標註的測試方法覆蓋給定類的所有 public 方法。

@covers classname::指明所標註的測試方法覆蓋給定類的所有 protected 方法。

@covers classname::指明所標註的測試方法覆蓋給定類的所有 private 方法。

@covers classname::指明所標註的測試方法覆蓋給定類的所有非 public 方法。

@covers classname::指明所標註的測試方法覆蓋給定類的所有非 protected 方法。

@covers classname::指明所標註的測試方法覆蓋給定類的所有非 private 方法。

@covers ::functionname指明所標註的測試方法覆蓋給定的全域性函式。

@coversnothing指明不需要記錄**覆蓋率資訊

@expectedexception指明期待的異常型別

@expectedexceptioncode指明期待的異常錯誤碼

@expectedexceptionmessage指明期待的異常錯誤資訊

@expectedexceptionmessageregexp期待的異常錯誤資訊正則

@large測試超過 60s會被標記為失敗

@medium測試超過 10s會被標記為失敗

@small測試超過 1s會被標記為失敗

@test標記某個非test開頭的函式能夠被當做測試函式進行測試

@dataprovider指明提供引數的函式名稱

譯 Reduce(軟體編寫)(第五部分)

本文講的是 譯 reduce 軟體編寫 第五部分 array.reduce reducer accumulator any,current any any,initialvalue any accumulator any 2,4,6 reduce acc,n acc n,0 12const summ...

Python學習手冊(第五部分 模組)

注意 匯入只發生一次!如果需要乙個模組的 通過某種匯入後再一次執行,需要使用內建函式reload來實現。最好使用import直接匯入模組,使用from import 語句匯入的變數名可能會有問題。import匯入模組包的語句中的目錄路徑只能是以點號間隔的變數。相對匯入與絕對匯入 絕對匯入的格式為 i...

Job 儲存和持久化 第五部分

十.使用資料庫儲存 scheduler 資訊 載入 job 到資料庫中 在前面有一節,使用記憶體儲存 scheduler 資訊 我們談到關於在使用 ramjobstore 時如何載入 job 和 trigger 資訊到記憶體中。那麼 job 和 trigger 又是如何載入到資料庫中的呢?存在以下幾...