我试图延迟变量(AppiumDriver
服务)为我的测试ng测试在@BeforeSuite
方法像这样:
abstract class BaseTest {
lateinit var driver: AppiumDriver<MobileElement>
@Parameters("platform")
@BeforeSuite(alwaysRun = true)
fun init(platform: String) {
Configuration.isIOS = platform.lowercase() == "ios"
driver = <driver initialization>
println(driver)
}
}
我的测试看起来像这样:
class MedicationsTests : BaseTest() {
fun test_01() {
// Test using `driver` variable
}
}
@BeforeSuite
方法init(String)
在测试开始之前运行(我看到打印输出),但随后我得到错误,当方法test_01()
试图使用driver
变量:
kotlin.UninitializedPropertyAccessException: lateinit property driver has not been initialized
它在@BeforeClass
中工作得很好,但我想在整个套件中只运行一次初始化,而不是每个类一次…
有什么办法解决吗?
TestNG将为您的每个测试创建一个新的BaseTest类实例。如果你想分享你的驱动程序-让它静态。例子:
abstract class BaseTest {
companion object {
lateinit var driver: AppiumDriver<MobileElement>
}
}