java htmlunit单个测试通过,但在测试套件中运行失败
我正在使用HtmlUnit测试一些SAML SSO流。我编写了多个测试,它们在单独运行时运行良好。当我在测试套件中运行它们或运行所有测试时。只有1个可以正常工作,而其他的则不行。问题似乎是,一旦使用webclient.getPage('url')
请求第一页,并单击一个按钮以重定向到下一页。点击没有发生。单独运行测试时,它会单击fine并正常工作
我使用的是htmlunit版本2.46.0,如下所示。测试之间共享的唯一静态数据是URL、用户名和密码:
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
它。但结果是一样的
如何在测试套件中激发与运行单个测试相同的行为
谢谢你的阅读
共 (0) 个答案