我有以下班级档案
public class AuthenticationTest extends Base {
private static Logger log = LogManager.getLogger(AuthenticationTest.class.getName());
private static WebDriver driver;
LoginPageFactory lp;
@BeforeTest
public void initialize() {
//ExtentReport.config(LoginTest.class.getName());
log.debug("Initializing WebDriver");
driver = getDriver();
log.debug("Driver is Initialized");
driver.get(p.getProperty("url"));
log.debug("Navigated to Login page");
}
@Test
public void login() {
try {
Map<String,String> data = ExcelUtil.getData("R1SanityTestData.xlsx", "LoginTest", "ValidLoginTest");
lp = new LoginPageFactory(driver);
log.debug("LoginPageFactory class initialized");
lp.txtUsername().click();
lp.txtUsername().clear();
lp.txtUsername().sendKeys(data.get("UserName"));
log.debug("Username entered");
lp.txtPassword().clear();
lp.txtPassword().sendKeys(data.get("Password"));
log.debug("Password entered");
lp.btnLogin().click();
log.debug("Login button clicked");
LandingPageFactory lpf = new LandingPageFactory(driver);
Assert.assertEquals(lpf.lblAppName().getText(), "OD App");
Assert.assertTrue(lpf.iconProfile().isDisplayed());
log.info("Login Success");
String path = Screenshot.takeScreenshot(driver, "LoginTest/LoginStatus");
}
catch(IOException e) {
log.fatal("IOException in LoginTest");
log.fatal(e.getMessage() +" : " + e.getStackTrace());
driver.quit();
}
catch(NoSuchElementException e){
log.fatal("NosuchElementException in LoginTest");
log.fatal(e.getMessage() +" : " + e.getStackTrace());
driver.quit();
}
catch(Exception e) {
log.fatal("Exception in LoginTest");
log.fatal(e.getMessage() +" : " + e.getStackTrace());
driver.quit();
}
}
@AfterTest
public void logOut() {
CommonPageFactory cpf = new CommonPageFactory(driver);
cpf.linkViewProfile().click();
log.debug("View Profile Clicked");
cpf.linkLogOut().click();
log.debug("Log Out Clicked");
driver.quit();
}
}
当我单独运行这个类时(作为-
控制台输出:[远程测试NG] 检测到测试NG版本 7.0.1 在端口 42250 上启动 Chrome 驱动程序 83.0.4103.39 (ccbf011cb2d2b19b506d833300373761342c20cd-refs/分支头/4103@{#416}) 仅允许本地连接。请参阅 https://chromedriver.chromium.org/security-considerations,了解有关确保 Chrome 驱动程序安全的建议。浏览器驱动程序已成功启动。2020 年 5 月 31 日 8:14:54 PM 组织.openqa.硒.远程.协议手摇创建会话信息: 检测到的方言: W3C 通过: 登录失败: logOut 组织.openqa.硒.NoSuch元素例外: 没有这样的元素: 无法找到元素: {“方法”:“css 选择器”,“选择器”:“span[数据-光环类='uiImage']”} (会话信息: chrome=83.0.4103.61)
我的WebDriver是静态的,派生自Base类。我正在使用测试7.1.0。可能是什么问题?
我在论坛上搜索,但找不到答案。
尝试使用dependsOn或在测试注释中使用优先级@测试方法并不总是按照编写时的顺序执行。此外,如果测试并行运行,这也将是一个问题。由于注销完全依赖于登录方法,请尝试使用
@Test(dependsOnMethods ="login")
public void logOut() {
....}
dependsOn 将确保仅在登录方法成功完成或通过后才运行 logOut 方法。
使用JUnit 4,调用JUnit的ant构建脚本总是将测试类名报告为“未知”。有没有一种不涉及从测试用例派生的方法来解决这个问题? 我用@测试注释声明我的测试方法,例如: 有些est.java: 并将它们收集到一个测试套件中: 所有测试。java: 然后我通过NetBeans调用ant任务,它对JUnit运行的打印结果有很好的集成支持。除了测试名称之外,一切似乎都找到了,例如: 测试运行正常,我
我有一个被注释为的类,然后将其添加到另一个类中。但是,我需要删除这个注释,而是在以前自动连线它的类中用一个注释方法创建它。 以前的类看起来像: ...或者我直接调用这个方法(在我看来不是正确的方法): …或者这两个都不正确?
我认为它正在发生: 我尝试执行测试。 H2数据库用每个changelog(初始和海关)初始化 开始执行测试。 在每次测试之前,不会删除H2数据库,而是调用changelog(或者只调用我的自定义changelog)。 我的自定义changelogs失败,因为它找不到在点2时删除的登录列,并且它不是由初始ChangeLog“Restaured”的。 完整版本:我用4.8.0生成了一个JHipster
JUnit提供了一个方便的Timeout选项。 如果测试用例花费的时间超过指定的毫秒数,则JUnit会自动将其标记为失败。 timeout参数与@Test注释一起使用。 让我们看看@Test(超时)的实际效果。 创建一个类 (Create a Class) 在C:\“JUNIT_WORKSPACE中创建一个要测试的java类,比如MessageUtil.java 。 在printMessage()
我想在Spring中测试注入依赖关系。 我想要一个这样的测试: 我尝试过使用ContextConfiguration和一个测试配置文件,但是测试失败了,我不想在测试中使用@autowired,我想创建我的类的一个实例,并且bean是自动autowired的。
嗨,我正在使用下面的代码在我的webflux应用程序中使用aop打印日志,我在编写单元/集成测试时遇到了麻烦?我们可以在这里验证日志交互吗?任何帮助都将不胜感激 测试失败。不知为什么,当我调试指针不在doOnNext方法中时,我不确定如何在上面的日志记录方面断言日志交互。在Junit5中,我知道我可以为每个方法使用mockito并返回一些东西,但在Spock中我如何重新调用。 是否建议为@logg