2015-05-11 15 views
5

Trước khi gửi các trường hợp thử nghiệm của mình, tôi muốn đảm bảo rằng chúng chạy ổn định. Có cách nào trong Android Studio để chạy cùng một trường hợp thử nghiệm/lớp trong vòng lặp nhiều lần không?Android Studio - chạy cùng một trường hợp thử nghiệm nhiều lần trong vòng

+0

Tôi không nghĩ rằng IJ hỗ trợ điều đó. Nếu bạn không muốn chạm vào mã thử nghiệm của mình, bạn có thể làm 'set -e; cho tôi trong {1..20}; do ./gradlew connectedAndroidTest; done'. –

Trả lời

2

Chú thích thử nghiệm của bạn với @FlakyTest. Xem http://developer.android.com/reference/android/test/FlakyTest.html

Ví dụ

@FlakyTest(tolerance = 3) 
public void myTest() { 
    // Test that sometimes fails for no good reason 
} 

Cập nhật: Tôi thấy bạn đang sử dụng Espresso. Sau đó ... không, điều này không được hỗ trợ bởi android-test-kit, thật không may. Nhưng đây là yêu cầu tính năng: https://code.google.com/p/android-test-kit/issues/detail?id=153

-1

Chỉ cần sử dụng chu kỳ FOR. Ví dụ:

@Test // test loop 
    public void openApp() { 
     int x; 
     for(x=1; x < 3; x++) { 
      PageObject open = new PageObject(driver); 
      waitUntilElmntToBeClckbl(open.sqlApp); 
      open.sqlApp.click(); 
      driver.navigate().back; 
} 
+0

Điều đó không đúng! Trước mỗi thử nghiệm, một số thiết lập/cấu hình sẽ được thực hiện. Với đề xuất của bạn, nó sẽ được thực hiện chỉ một lần và sau đó thử nghiệm sẽ chỉ chạy. Thứ hai, sau khi kiểm tra thất bại, nó sẽ thoát. Nó sẽ không tiếp tục chạy cho nhiều lần lặp lại. Thứ ba, đây là để kiểm tra tính ổn định của chạy thử và phải được thực thi trên mã thử nghiệm thực tế sẽ được gửi đi. – user846316

+0

Bạn không cung cấp thông tin này trong câu hỏi của mình ... – Konstantin

0

Sử dụng parameterized kiểm tra JUnit với một số trường hợp của trống bộ tham số:

@RunWith(Parameterized.class) 
public class RepeatedTest { 

    private static final int NUM_REPEATS = 10; 

    @Parameterized.Parameters() 
    public static Collection<Object[]> data() { 
     Collection<Object[]> out = new ArrayList<>(); 
     for (int i = 0; i < NUM_REPEATS; i++) { 
      out.add(new Object[0]); 
     } 
     return out; 
    } 

    @Test 
    public void unstableTest() { 
     // your test code here 
    } 
} 

Một lớp kiểm tra tham số chạy tất cả các phương pháp thử nó một lần cho tất cả các mục trong phương pháp đánh dấu bằng @Parameters chú thích . Nó thường được sử dụng để chạy một thử nghiệm với các giá trị ban đầu khác nhau, nhưng nếu không có giá trị để thiết lập, kiểm tra chỉ đơn giản là lặp đi lặp lại nhiều lần như bạn muốn.

Bài kiểm tra sẽ chỉ qua nếu tất cả các phiên bản vượt qua.

Các vấn đề liên quan