我在我的專案中使用了 TestNG 和 Cucumber。
使用的版本:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.4.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-testng</artifactId>
<version>7.0.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>7.0.0</version>
</dependency>
一切正常,但我需要在測驗運行開始之前進行一些動態標簽操作。更具體地說 - 我需要根據一些環境條件添加額外的過濾標簽運算式。
當前的實作是AbstractTestNGCucumberTests帶有TestNGCucumberRunner欄位的類。
我需要更改/添加一些代碼行的地方是TestNGCucumberRunner類的建構式,因為運行器在那里初始化并開始測驗運行。
問題是cucumber-testng依賴項中的幾乎所有類都不是publicand final. 所以我不能擴展類并覆寫一些邏輯。
我看到的唯一方法是將所有依賴于我的源檔案夾的類復制到我的源檔案夾中,這是一個奇怪而愚蠢的想法。
有什么技巧可以實作我的目標嗎?
uj5u.com熱心網友回復:
擴展時,AbstractTestNGCucumberTests您可以過濾輸出scenarios()
public class RunCucumberTest extends AbstractTestNGCucumberTests {
@DataProvider(parallel = true)
@Override
public Object[][] scenarios() {
Object[][] scenarios = super.scenarios();
// Do filtering here
return scenarios;
}
}
因為資料提供者用于呼叫測驗方法,所以您可以安全地將第一個陣列元素轉換為PickleWrapper并使用pickleWrapper.getPickle().get tags()來訪問標簽。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/424107.html
上一篇:如何處理柏樹錯誤?
下一篇:Testcafe測驗未在MacBookBigSur上執行,出現UnableToAccessScreenRecordingAPIError:
