2016-03-09 31 views
1

當前我的代碼我想檢查,只有當我的第一次測試優先級1失敗,然後我的測試優先級3的情況下應該運行..我該怎麼辦?我想檢查,只有當我的第一次測試優先級1失敗,然後我的測試用例優先級3應該運行

// login in to BIO 

@Test (priority=1) 
public void Login() throws Exception{ 
    browser.findElement(By.name("name")).sendKeys("johnmartin11"); 
    browser.findElement(By.name("password")).sendKeys("johnmartin1111"); 
    browser.findElement(By.cssSelector("input.signup-btn")).click(); 
    Thread.sleep(20000); 
    try{ 
     Thread.sleep(20000); 
     WebElement element = browser.findElement(By.xpath("/html/body/div[3]/div/div[1]/div/div[2]/div/div[1]/a/div[1]")); 
     String trb = element.getText(); 
     Assert.assertEquals("Blood", trb); 
     System.out.println("Login as Buyer successful"); 
     } 

      catch(Exception e){ 
      System.out.println("Login failed as Buyer"); 
      } 




    } 
    // Company Account page here 
    @Test (priority=2) 
    public void CompanyAccount() throws Exception{ 
     browser.findElement(Companyac).click(); 
     Thread.sleep(20000); 
     try{ 

       WebElement element = browser.findElement(Companyac); 
       String cac = element.getText(); 
       Assert.assertEquals("Company Account", cac); 
       System.out.println("in Company Account page Successfully"); 
       } 
       catch(Exception e){ 
       System.out.println("Company Account failed"); 
       } 
    } 

     // Create Stock link check 
//  @Test (priority=3) 
//   public void membertopartner() throws Exception{ 
//   Thread.sleep(20000); 
//    browser.findElement(memberlink).click(); 
//    browser.findElement(By.linkText("Partner")).click(); 
//    Thread.sleep(20000); 
//  try{ 
//    WebElement element = browser.findElement (By.linkText("Manage Product Stocks")); 
//    String stocklink = element.getText(); 
//    Assert.assertEquals("Manage Product Stocks", stocklink); 
//    System.out.println("stock link found"); 
//   } 
//   catch(Exception e){ 
//    System.out.println("Stock link failed"); 
//   } 
//  } 

回答

0

您可以使用dependsOnMethods標註在第二種方法,這樣,如果第一個通過,那麼只能執行第二個。現在根據您的要求,如果您希望僅在第一次失敗時執行第二次,那麼您必須以這種方式調整Assert,因此我將Assert.assertEquals更改爲Assert.assertNotEquals

@Test (priority=1) 
    public void Login() throws Exception{ 
     browser.findElement(By.name("name")).sendKeys("johnmartin11"); 
     browser.findElement(By.name("password")).sendKeys("johnmartin1111"); 
     browser.findElement(By.cssSelector("input.signup-btn")).click(); 
     Thread.sleep(20000); 
     try{ 
      Thread.sleep(20000); 
      WebElement element = browser.findElement(By.xpath("/html/body/div[3]/div/div[1]/div/div[2]/div/div[1]/a/div[1]")); 
      String trb = element.getText(); 
      Assert.assertNotEquals("Blood", trb); 
      System.out.println("Login as Buyer successful"); 
      } 

       catch(Exception e){ 
       System.out.println("Login failed as Buyer"); 
       } 

     } 
     // Company Account page here -- Now this method will be executed only when Login is successful. 
     @Test (dependsOnMethods = { "Login" }) 
     public void CompanyAccount() throws Exception{ 
      browser.findElement(Companyac).click(); 
      Thread.sleep(20000); 
      try{ 
        WebElement element = browser.findElement(Companyac); 
        String cac = element.getText(); 
        Assert.assertEquals("Company Account", cac); 
        System.out.println("in Company Account page Successfully"); 
        } 
        catch(Exception e){ 
        System.out.println("Company Account failed"); 
        } 
     }