Selenium,JAVA-在@After中出错

Selenium,JAVA-在@After中出错,java,testing,selenium,selenium-webdriver,webdriver,Java,Testing,Selenium,Selenium Webdriver,Webdriver,我的@After函数是: public void tearDown() throws Exception { driver.quit(); String verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { fail(verificationErrorString); } } 当我运行测试时,我得到

我的@After函数是:

  public void tearDown() throws Exception {
    driver.quit();
    String verificationErrorString = verificationErrors.toString();
    if (!"".equals(verificationErrorString)) {
      fail(verificationErrorString);
    }
  }
当我运行测试时,我得到一个错误:

java.lang.AddesrtionError: java.langAssertionErrorjava.lang.AssertionError
在拆卸时,线路:

      fail(verificationErrorString);

如何修复此问题?

您似乎误解了此问题的目的是为了导致测试失败,错误消息以字符串形式传递。它通过抛出断言错误来实现这一点。这是按预期工作的,其目的不是记录故障

我猜您想报告或记录verificationErrorString。如果是这样,那么将以下内容添加到TestCase类的顶部

Logger logger = LoggerFactory.getLogger(TestCase.class);
然后用以下内容替换fail(verificationErrorString)

logger.warning(verificationErrorString);


但是,您可以(应该)直接将它们放在测试中。

您是否尝试过使用调试器?函数
Assert.fail(String)
将使您的测试失败。这就是重点。那你为什么对它的失败感到惊讶呢?或者你想知道它是如何失败的?@blalasaadri我是测试自动化的新手。我还没有在“@After”中找到这些函数。我该怎么办?在某种程度上我不知道确切的上下文,但一般来说,在
@之后的
@中进行测试失败并不是一个好主意。
tearDown()
功能应用于测试后的清理(例如关闭驱动程序),而不是用于测试目的。因此,您可能希望将包含
verificationErrorString
的行移动到每个测试的末尾。(可能是在每次测试中调用的私有方法中。)我在每次测试结束时都有这些行。
logger.error(verificationErrorString);