当前位置: 首页 > 知识库问答 >
问题:

断言失败后如何在TestNG中运行其他测试

窦英武
2023-03-14

我目前在一个项目中使用TestNG启动Selenium测试套件,并处理maven项目中所有结果的日志记录,该项目在Jenkins的工作中每晚运行。

当前,当一个测试失败了一个断言时,TestNG会杀死我们正在运行的所有东西,它不仅会使当前测试失败,还会继续运行套件中的其他测试。我不明白为什么TestNG不只是使当前的测试失败,然后启动剩余的尚未运行的测试。这使得TestNG在这一点上成为一个无用的工具。必须有一种方法在某个地方配置TestNG,以便在单个测试失败后继续运行测试。

共有1个答案

马坚白
2023-03-14

为断言创建一个帮助器类。将断言放在try and catch中,当断言失败时,只需记录错误,而不要抛出它。在测试结束时,查看是否记录了任何错误,如果存在错误,则抛出异常

public static void AssertVerticalAlignment(int a, int b)
{
    try
    {
        Assert.AreEqual(a, b);
    }
    catch (Exception exception)
    {
        LogHelper.LogException(exception.Message);
    }
}
 类似资料:
  • 我正在jenkins上运行一组测试,我得到以下结果: 好的东西告诉我行: maven-surefire-插件: 2.16是这里的问题,所以这里是我的pom文件检查: 我已经检查了maven仓库中的插件,我看到的唯一区别是插件标签中有插件,而在网站中它是在依赖标签中。 这里可能有什么错误? 谢谢 注:抱歉纯文本,但我不知道如何给代码上色=/

  • 这是我的任务:给定一个字符串,XYZ是否出现在字符串的中间?为了定义中间,我们将说“xyz”左右的字符数最多相差一个。 使用下面的代码可以查看用例中的问题描述和故障 xyzMiddle(“AAxyzBB”)→ 符合事实的 xyzMiddle(“AxyzBB”)→ 符合事实的 xyzMiddle(“AxyzBBB”)→ 错误的 我的解决方案如下。既然我看不出“其他测试”是什么,请帮我找出问题所在。我

  • 当我在命令行中运行TestNG时,抛出异常: c:\test>java org.testng.testng testng.xml线程“main”java.lang.noClassDefounderror:com/beust/jcommander/parameterexception在java.lang.class.getDeclaredMethods0(本机方法)在java.lang.class.

  • 如果在测试运行期间,任何测试步骤抛出一个异常(如NosuChelementException),我希望testNG测试(@test)失败。(仅举个例子) 在当前场景中,我正在检查是否单击了特定的任务,然后在UI上的元素中出现了一些文本。但是最近AUT在单击任务时抛出了一个网络错误,因此包含我正在验证的文本的元素没有出现在UI上。因此webdriver引发了NosuChelementExceptio

  • 我使用Jfunc构建了我现有的框架,它提供了一个即使测试用例中的一个断言失败也能继续执行的工具。Jfunc使用junit3. x框架。但是现在我们正在迁移到Junit4,所以我不能再使用Jfunc,而是用junit4.10 jar代替了它。 现在的问题是,因为我们已经在我们的框架中广泛使用了jfunc,并且使用junit4,我们希望让我们的代码继续执行,即使其中一个断言在测试用例中失败。 有人对此

  • 我正在为企业环境构建Selenium自动化套件的最后阶段工作。它配置了TestNG,在Jenkins上运行。该套件主要由UI测试组成。作为这种设置的典型,测试是不稳定的,在我们的时间范围内,重新处理测试以减少对UI自动化的依赖是不可行的。 鉴于我已经在进行代码优化,我想设置一些自动重新运行失败测试的东西,以最大限度地减少手动调查失败的需要。我已经调查了几个选项,但没有一个适合我们的设置: 一个理想