C++ 測試支援與設定快取不相容。 |
原生生態系統中的測試有許多形式。
有不同的測試函式庫和架構,以及許多不同類型的測試。所有這些都需要成為建置的一部分,無論它們執行頻率高或低。本章致力於說明 Gradle 如何處理建置之間和建置內部不同的需求,並重點說明它如何與基於可執行檔的測試架構整合,例如Google Test。
與Java 和 JVM 專案中的測試相比,在 Gradle 中測試 C++ 專案相當有限。在本章中,我們說明控制測試執行方式的方法(測試執行)。
但首先,我們來看一下 Gradle 中原生測試的基礎知識。
基礎
所有 C++ 測試都圍繞著單一任務類型:RunTestExecutable。這會執行使用任何測試架構建置的單一測試可執行檔,並使用可執行檔的結束代碼來斷言執行成功。測試案例結果不會收集,也不會產生任何報告。
為了運作,RunTestExecutable任務類型只需要一項資訊
-
在何處找到建置的測試可執行檔(屬性:RunTestExecutable.getExecutable())
當您使用 C++ 單元測試外掛程式 時,您將自動取得下列項目
-
專用的 unitTest 擴充功能,用於設定測試元件及其變異
-
run
類型的任務 RunTestExecutable,用於執行測試可執行檔
測試外掛程式會適當地設定所需資訊片段。此外,它們會將 run
任務附加到 check
生命週期任務。它也會建立 testImplementation
相依性設定。僅在測試編譯、連結和執行階段所需的相依性可以新增到此設定。unitTest
指令碼區塊的行為類似於 application
或 library
指令碼區塊。
RunTestExecutable 任務有許多設定選項。我們會在本章節的其餘部分介紹其中一些選項。
測試執行
Gradle 會在個別(「分岔」)程序中執行測試。
您可以透過 RunTestExecutable 任務上的多個屬性來控制測試程序的啟動方式,包括下列項目
ignoreFailures
- 預設值:false-
如果此屬性為
true
,Gradle 會在測試完成後繼續進行專案的建置,即使其中一些測試已失敗。請注意,預設情況下, RunTestExecutable 任務類型會執行它偵測到的每個測試,而不論此設定為何。
請參閱 RunTestExecutable,以取得所有可用設定選項的詳細資料。