以编程方式退出testNG测试

以编程方式退出testNG测试,testng,selenium-webdriver,Testng,Selenium Webdriver,如果满足某个条件,如何以编程方式退出整个测试套件 我正在检查@AfterMethod中的条件,并使用fail()方法使AfterMethod注释失败。但是AfterMethod注释的执行次数与我的测试套件中的测试次数相同。但是,将跳过这些测试 有办法做到这一点吗 谢谢, 约翰正是我的想法 如果您的条件满足,请在afterMethod注释方法中调用afterClass注释方法,并在afterClass中停止java进程 public class NewTest { @BeforeClas

如果满足某个条件,如何以编程方式退出整个测试套件

我正在检查@AfterMethod中的条件,并使用fail()方法使AfterMethod注释失败。但是AfterMethod注释的执行次数与我的测试套件中的测试次数相同。但是,将跳过这些测试

有办法做到这一点吗

谢谢,

约翰

正是我的想法

如果您的条件满足,请在afterMethod注释方法中调用afterClass注释方法,并在afterClass中停止java进程

public class NewTest {

    @BeforeClass
      public void beforeClass() {
          System.out.println("In before class");
      }

      @BeforeMethod
      public void beforeMethod() {
          System.out.println("in before method");
      }

      @Test
      public void test1()
      {
          System.out.println("in test1 method");

      }
      @Test
      public void test2()
      {
          System.out.println("in test2 method");

      }
      @AfterMethod
      public void afterMethod() throws Throwable {
          System.out.println("in after method");
          if(condition)
          {
              afterClass();
          }
      }

      @AfterClass
      public void afterClass() throws Throwable {
          System.out.println("in after class ");
          System.exit(0);
      }

}

@AfterMethod注释在测试中的每个测试方法之后触发。但是,如果您想在每个测试方法之后验证条件,这是正确的注释

但如果您想在所有方法执行之后执行,请使用@AfterClass

仅仅放置System.exit()不是一个好的做法。一旦退出测试,它将不会生成任何测试拆卸操作和报告生成。一个干净的方法是,一旦发现这样的场景,就跳过测试

您可以使用testng SkipException来实现这一点。有关示例,请参见下面的代码

  @AfterMethod
      public void afterMethod() throws Throwable {
          if(CONDITION_MET==true)
          {
             throw new SkipException ("Skipping Test: ");
          } 
      }
谢谢,,
Dharsnana

不太确定我理解了你的问题,你正在寻找的是在某个特定的场景被满足的时候,在运行的中间打破一个运行的测试套件?成功了吗?为什么要麻烦构建其他测试?我想完全退出测试,因为此检查用于检查后台正在运行的内容,但在测试开始之前我无法检查。抱歉,我花了这么长时间才回复,我正在休假。所以,如果我明白了,你想在条件失败的情况下停止运行测试吗?是的,这就是我想做的。谢谢。谢谢桑托什,我会试试你的建议。嗨,达莎娜,谢谢你的回复。我不想跳过,但会在生成报告后退出:),这样我就可以告诉开发人员某些服务没有运行,他们可以打开它,因为如果该服务没有运行,继续测试就没有意义了。干杯