一旦发生异常,如何在测试中停止执行代码

时间:2013-08-28 17:54:40

标签: java selenium-webdriver testng

我正在使用Selenium-web驱动程序自动化Web应用程序。一旦脚本在任何时候断开,我想停止执行代码而不是继续下一个方法,这样我就可以知道自动化在哪里破坏了。任何人都可以帮助我,我该怎么做。

这是catch块的片段(即我现在正在使用的例外)

try {
   //code
} 
catch(Exception e){
   System.out.println("Exception occurred *** " +e.getMessage());
}

3 个答案:

答案 0 :(得分:1)

如果我理解你的要求,我会把它放在catch块中以帮助你追踪问题。

catch(Exception e)
{
   e.printStackTrace();
   System.exit(1)
}

或者您也可以在每个catch块中放置一个print语句来标识哪个块失败。

try{
//make a cake
}
catch(CakeException e)
{
   System.out.println("Failed at cake baking);
}

try{
//make a salad
}
catch(LettuceException e)
{
   System.out.println("Failed at lettuce chopping);
}

答案 1 :(得分:0)

嗯,测试应该是设计独立的,所以测试的失败不应该影响其他测试。如果您在第一次失败的测试中停止执行,那么您如何知道代码中还有多少错误?

这是一个大致的想法,解释了为什么testng不包含开箱即用的所需功能。但是,您仍然可以获得testng提供的测试依赖机制的优势:

@Test
public void serverStartedOk() {}

@Test(dependsOnMethods = { "serverStartedOk" })
public void method1() {}

因此,您需要以这种方式链接您的方法,以确保在第一次失败时执行被破坏。

答案 2 :(得分:0)

这是我控制所有事件的方式。

创建所有类都可见的方法

protected void exeption(String variable){
  driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
    System.out.println(" ");
    System.out.println("stop test ____ something your code - exeption ______");
    System.out.println(" ");
    System.out.println("Check Variables:  " + variable);
    System.out.println("____________________________________________");
    driver.findElement(By.xpath("//ooppss"));
}

private void testName() {
String variable = "something";
        if(1!=2){
      exeption(variable);
    }
}