提问人:andrei 提问时间:11/17/2023 更新时间:11/17/2023 访问量:24
有没有办法删除 .har 文件?
Is there a method to drop the .har file?
问:
我的 Playwright 测试是在 Junit5 测试中。我试图实现的是,如果我的测试有任何断言(基本上是如果测试失败),请保存 .har 文件,否则丢弃它。
@Test
public void myTest() {
try {
//.har file already recording
navigateToSomePages();
assertThat(page.locator(cssSelector)).hasText("allGood");
} catch (AssertionFailedError | TimeoutError error) {
// regardless of the test outcome the .har file is kept. Just wanted it in case of fail/assertion is throw.
doScreenShot();
throw error;
}
}
@BeforeEach
// before each test start the HAR recording
protected void beforeEachAbstractMethod() {
context = browser.newContext(new Browser.NewContextOptions()
.setRecordHarPath(Paths.get("file.har"))
.setRecordHarMode(HarMode.MINIMAL));
}
一旦启动,就无法真正找到与停止 HAR 文件生成相关的任何内容:https://playwright.dev/java/docs/mock#recording-a-har-file。
可能有效的一件事是每次在assertThat(...)之后调用File.delete(),但这确实是丑陋的:(
答:
0赞
Laurent Schoelens
11/17/2023
#1
也许你可以在 JUnit5(从 5.7 开始)中使用该函数TestWatcher
文档在这里
然后,您将能够实现一个 testSuccessful 方法,该方法将在测试通过时始终调用,以便删除之前生成的文件。通过这样做,如果测试被禁用、失败或中止,您的文件将不会被删除(因为每个都有自己的方法,或者testDisabled
testFailed
testAborted
)
评论
0赞
andrei
11/17/2023
我真的不想首先生成文件:(.真的试图避免保存,然后根据测试结果删除。无论如何,谢谢你的想法!
评论