有没有办法删除 .har 文件?

Is there a method to drop the .har file?

提问人:andrei 提问时间:11/17/2023 更新时间:11/17/2023 访问量:24

问:

我的 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(),但这确实是丑陋的:(

java playwright playwright-java

评论


答:

0赞 Laurent Schoelens 11/17/2023 #1

也许你可以在 JUnit5(从 5.7 开始)中使用该函数TestWatcher

文档在这里

然后,您将能够实现一个 testSuccessful 方法,该方法将在测试通过时始终调用,以便删除之前生成的文件。通过这样做,如果测试被禁用、失败或中止,您的文件将不会被删除(因为每个都有自己的方法,或者testDisabledtestFailedtestAborted)

评论

0赞 andrei 11/17/2023
我真的不想首先生成文件:(.真的试图避免保存,然后根据测试结果删除。无论如何,谢谢你的想法!