我無法讓 Selenium TestContainers 為我記錄測驗。
我在 Quarkus 中使用 TestContainers。Quarkus 處理在類中設定測驗資源的方式QuarkusTestResourceLifecycleManager,如下所示:
@Slf4j
@Testcontainers //not working
public class TestResourceLifecycleManager implements QuarkusTestResourceLifecycleManager {
//...
@Container //not working
private static BrowserWebDriverContainer<?> BROWSER_CONTAINER = null;
//...
@Override
public Map<String, String> start() {
File recordingDir = new File("build/seleniumRecordings/");
recordingDir.mkdir();
BROWSER_CONTAINER = new BrowserWebDriverContainer<>()
.withCapabilities(new FirefoxOptions())
.withRecordingMode(RECORD_ALL, recordingDir);
BROWSER_CONTAINER.start();
}
}
這在功能上有效,因為我可以通過測驗容器使用 Selenium 并且測驗作業正常。但是,永遠不會觸發記錄,因為我沒有在測驗類中設定我的瀏覽器容器。
我還嘗試將 testcontainer 移動到我的 UI 測驗的超類中。這似乎在功能上再次起作用,并且顯然觸發了錄制,但是我只得到了一個flv大約 149kB 的檔案并且沒有播放任何東西(大約 10 個單獨的 UI 測驗)。此外,這似乎不適用于多組態檔測驗(交換組態檔、重新啟動 Quarkus 和核對靜態成員的測驗),以及在不同組態檔中斷的初始設定之后的測驗。
@Slf4j
@Testcontainers
public class WebUiTest extends RunningServerTest implements TestLifecycleAware {
private static final File recordingDir = new File("build/seleniumRecordings/");
@SuppressWarnings({"unused", "FieldCanBeLocal", "FieldMayBeFinal"})
@Container
private static BrowserWebDriverContainer<?> BROWSER_CONTAINER = new BrowserWebDriverContainer<>()
.withCapabilities(new FirefoxOptions())
.withRecordingMode(RECORD_ALL, recordingDir);
static {
//required for tests to work
BROWSER_CONTAINER.start();
}
}
有任何想法嗎?最好的情況下,我希望能夠以標準的 junit@AfterEach方法觸發錄制,但所需的引數 ( TestDescription description, Optional<Throwable> throwable) 不可用......
uj5u.com熱心網友回復:
最好的情況下,我希望能夠在標準的 junit @AfterEach 方法中觸發錄制,但是所需的引數(TestDescription 描述,可選的 throwable)不可用......
這就是我建議的更高級的框架集成,這些框架集成在 OOTB 中不起作用。您應該能夠TestDescription為您的用例實體化 a,例如,從匿名類(它用于推斷錄音的檔案名)。
new TestDescription() {
@Override
String getTestId() {
// can be null, is not used
return null
}
@Override
String getFilesystemFriendlyName() {
return "myTestMethod";
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/438449.html
標籤:硒 夸库斯 用户界面测试 测试容器 测试容器-junit5
下一篇:使用哪個預期條件?
