如何解决htmlunit 单个测试通过但在测试套件中运行失败
我正在使用 HtmlUnit 来测试一些 SAML SSO 流程。我编写了多个测试,它们在单独运行时工作正常。当我在测试套件中运行它们或运行所有测试时。只有 1 工作正常,其他失败。问题似乎是,一旦使用 webclient.getPage('url')
请求第一页并单击按钮以重定向到下一页。点击不会发生。当单独运行测试时,它点击正常并且工作正常。
我正在使用 htmlunit 2.46.0 版,如下所示,测试之间共享的唯一静态数据是 URLS 和用户名和密码:
private static final String USERNAME = "username";
private static final String PASSWORD = "password";
public void test1() throws Exception {
try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setRedirectEnabled(true);
webClient.getCookieManager().setCookiesEnabled(true);
final HtmlPage loginPage= webClient.getPage(URL);
assertThat(loginPage.getTitleText()).isEqualTo(LOGIN_PAGE_TITLE);
HtmlButtonInput samlLoginButton = loginPage.getHtmlElementById("test");
samlLoginButton.click();
webClient.waitForBackgroundJavaScriptStartingBefore(10000);
webClient.waitForBackgroundJavaScript(60000);
HtmlPage nextLoginPage = (HtmlPage) webClient.getCurrentWindow().getEnclosedPage();
assertThat(nextLoginPage.getUrl().toString()).isEqualTo(NEXT_LOGIN_URL);
}
}
public void test2() throws Exception {
//similar to above example
}
当我在 java 中使用 try with resources 时,最后调用了 webclient.close()
。
还有什么我需要做的吗?
我还尝试在 Junit 中设置 @BeforeEach
和 @AfterEach
以设置 webclient
和 close
。但结果是一样的。
如何在测试套件中激发与运行单个测试相同的行为?
感谢阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。