Tachycardia是一個 PHPUnit 擴展,可以檢測並報告運行緩慢的測試,並將它們直接列印在控制台中。它還可以選擇在拉取請求期間內聯註釋檔案中的特定測試。
注意:心動過速只會偵測測試套件中的慢速測試,但不會解釋為什麼這些已辨識的測試速度慢。您應該使用專用的分析器來代替這些。
$vendor/bin/phpunitPHPUnit 10.5.5 由Sebastian Bergmann 和貢獻者提供。 ................................................................ ....... ................. 65 / 96 ( 67%) ................... .............. 96 / 96 (100%)NexusPHPUnitTachycardiaTachycardiaExtension 識別出這個唯一的慢測試:從1.0000 秒的限制中花費了1.3374 秒來運行NexusPHPUnitTachycardiaTests RendererGithubRendererTest::testRendererWorksProperlySlow 測試:時間:00:00:01.710 (2.54%)時間:00:58.737,記憶體:16.00 MBOK(96個測試,265個斷言)以Clover XML XML會回報...完成[00:00.391]以HTML格式產生程式碼覆蓋率報告...完成[00:01.930]
Tachycardia 只能作為開發時相依性安裝,以協助執行專案的測試套件。您可以使用 Composer 安裝:
composer require --dev nexusphp/tachycardia
心動過速支援以下參數:
time-limit - 所有測試強制執行的時間限制(以秒為單位)。所有超過此數量的測試都將被視為緩慢。預設值:1.00
report-count - 要在控制台報告中顯示的慢速測試的數量。這在 Github Actions 報告中被忽略。預設值:10
precision - 測試消耗時間和分配時間限制的小數精度。預設值:4
format - 控制台渲染器的格式。
ci-format - CI 渲染器的格式。
控制台和 CI 的渲染器格式可以是以下任一種:
格式 | 對於控制台? | 對於 CI? | 評論 |
---|---|---|---|
清單 | 控制台的預設設定 | ||
桌子 | |||
github | CI 的預設值 | ||
GitLab | |||
團隊城市 |
要使用該擴充功能及其預設設定選項,您只需將以下內容新增至phpunit.xml.dist
或phpunit.xml
檔案中。
<?xml 版本=“1.0”編碼=“UTF-8”?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php" cacheResultFile=" build/.phpunit.cache/test-results"colors="true"beStrictAboutOutputDuringTests="true"beStrictAboutTodoAnnotatedTests="true"failOnRisky="true"failOnWarning="true"><!-- 您的其他php--unit 配置在這裡-- ><擴充> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension" /> </擴展名> </phpunit>
現在,執行vendor/bin/phpunit
。如果有測試案例消耗的時間超過配置的時間限制,這些將在所有測試完成後顯示在控制台中。
如果您希望自訂一個或多個可用選項,只需更改phpunit.xml.dist
或phpunit.xml
檔案中的條目即可。
<?xml 版本=“1.0”編碼=“UTF-8”?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php" cacheResultFile=" build/.phpunit.cache/test-results"colors="true"beStrictAboutOutputDuringTests="true"beStrictAboutTodoAnnotatedTests="true"failOnRisky="true"failOnWarning="true"><!-- 您的其他php--unit 配置在這裡-- ><擴充> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension"> <參數名稱=“時間限制”值=“2.00”/> <參數名稱=“報告計數”值=“30”/> <參數名稱=“精度”值=“2”/> <參數名稱=“格式”值=“表”/> <參數名稱=“ci-format”值=“github”/> </引導> </擴展名> </phpunit>
報告緩慢的測試
使用環境變數啟用/停用控制台報告
在 Github Actions 中啟用/停用分析
自訂時間限制
設定每個測試的自訂時間限制
設定每堂課的自訂時間限制
禁用每個測試或每個班級的時間限制
使用屬性代替
將結果製成表格而不是簡單的渲染
重新運行緩慢的測試,看看現在是否很快
從 v1.x 升級到 v2.x?請參閱升級指南。
非常歡迎您的貢獻。如果您發現改進或錯誤修復,請立即提交 PR!
閱讀有關 Nexus 心動過速貢獻的更多資訊。
Tachycardia 的靈感來自johnkary/phpunit-speedtrap
,但注入了合成代謝類固醇。
心跳過速其實是醫學術語,指的是心率超過正常靜止心率(一般每分鐘超過 100 次)。
該庫根據 MIT 許可證獲得許可。