2012-01-03 28 views
5

Tôi đang sử dụng trình quản trị web Selenium, trong Java với TestNG để chạy một số lượng các trường hợp thử nghiệm X.Tự động khởi động lại trường hợp thử nghiệm không thành công trong TestNG/Selenium

Điều tôi muốn, là dành cho mọi trường hợp thử nghiệm để tự động khởi động lại (kể từ khi bắt đầu hoặc từ điểm không thành công), ngay khi nó không thành công.

Tôi biết khuôn khổ TestNG có phương pháp sau đây

@Override 
    public void onTestFailure(ITestResult tr) { 
    log("F"); 
    } 

nhưng tôi không biết làm thế nào để tìm ra các testcase nó và sau đó làm thế nào tôi sẽ khởi động lại nó.

Trả lời

9

tôi muốn xem một ví dụ với mã thực tế trong đó và tìm thấy nó ở đây: Restarting Test immediately with TestNg

Quan sát cách các xét nghiệm dưới đây sẽ từng được tái chạy một lần ngay sau khi thất bại xảy ra.

import org.testng.Assert; 
import org.testng.IRetryAnalyzer; 
import org.testng.ITestResult; 
import org.testng.annotations.Test; 

public class Retry implements IRetryAnalyzer { 
    private int retryCount = 0; 
    private int maxRetryCount = 1; 

    public boolean retry(ITestResult result) { 

     if (retryCount < maxRetryCount) { 
      retryCount++; 
      return true; 
     } 
     return false; 
    } 

    @Test(retryAnalyzer = Retry.class) 
    public void testGenX() { 
     Assert.assertEquals("james", "JamesFail"); // ListenerTest fails 
    } 

    @Test(retryAnalyzer = Retry.class) 
    public void testGenY() { 
     Assert.assertEquals("hello", "World"); // ListenerTest fails 

    } 
} 
5

Từ testng.org

Mỗi lần kiểm tra thất bại trong một bộ, TestNG tạo ra một tập tin gọi là testng-failed.xml trong thư mục đầu ra. Tệp XML này chứa thông tin cần thiết để chạy lại các phương thức này không thành công, cho phép bạn nhanh chóng tái tạo các lỗi mà không phải chạy toàn bộ các thử nghiệm của mình.

Nếu bạn muốn chạy lại kiểm tra chính xác sau khi lỗi bạn cần gọi phương thức không thành công. Bạn có thể lấy tên phương thức đó từ đối tượng ITestResult.

Nếu bạn muốn chạy lại tất cả các trường hợp kiểm tra không thành công với nhau, thì bạn có thể cho testng-failed.xml làm đầu vào xml sau lần thực hiện đầu tiên.

+0

Tôi muốn chạy chúng giống như chúng không thành công. Ok vì vậy tôi đã thử nghiệm không thành công và tên của nó, làm thế nào tôi sẽ khởi động lại thử nghiệm? – MostWanted

+0

đừng bận tâm .. tôi hiểu rồi .. [chúc mừng] (http://testng.org/doc/documentation-main.html#running-testng-programmatically) – MostWanted

+0

@WaqasKhan ... Vui lòng đăng giải pháp nếu bạn có . Tôi biết đó vẫn là một câu hỏi cũ ... – Sighil