上記の記事を参考にして構築してみた際に以下の点で詰まったのでメモ書きです。
-
enableLog
,enableVNC
,enableVideo
の設定場所が変わった - ログファイルと録画ファイルを
/Specification名/Scenario名/ブラウザ名.[log|mp4]
として保存したかった
Setup.kt
class Setup {
@BeforeSuite
fun beforeSuite() {
// この時点では specification / scenario が決まっていないので取得できない
}
@BeforeScenario
fun beforeScenario(context: ExecutionContext) {
// specification 名, scenario 名を取得する
val specName = context.currentSpecification.name
val testName = context.currentScenario.name
// ログファイルと実行動画の出力先ディレクトリ階層
val fileDir = "$specName/$testName/".replace(" ", "_")
// それぞれディレクトリが存在しなければエラーになるので事前に作成しておく
val logPath: Path = Paths.get("selenoid/logs/$fileDir/")
if (Files.notExists(logPath)) {
Files.createDirectories(logPath)
}
val videoPath: Path = Paths.get("selenoid/video/$fileDir/")
if (Files.notExists(videoPath)) {
Files.createDirectories(videoPath)
}
val capabilities = DesiredCapabilities()
val browserName = System.getenv("browser.name")
capabilities.setCapability("browserName", browserName)
capabilities.setCapability("browserVersion", System.getenv("browser.version"))
// enable* などの設定は "selenoid:options" として設定する
val selenoidOptions = mapOf(
"enableLog" to true,
// ログファイル名を指定
"logName" to "$fileDir/$browserName.log",
"enableVNC" to true,
"enableVideo" to true,
// 動画ファイル名を指定
"videoName" to "$fileDir/$browserName.mp4",
)
capabilities.setCapability("selenoid:options", selenoidOptions)
val driver = RemoteWebDriver(
URI.create("http://localhost:4445/wd/hub").toURL(),
capabilities,
)
WebDriverRunner.setWebDriver(driver)
}
}