Przed przesłaniem testowych przypadków chcę się upewnić, że działają stabilnie. Czy w Android Studio jest jakiś sposób na uruchomienie tej samej pętli testowej/klasy przez kilka razy?Android Studio - uruchom kilka przypadków testowych kilka razy w pętli
Odpowiedz
Opisz swój test pod numerem @FlakyTest
. Zobacz http://developer.android.com/reference/android/test/FlakyTest.html
Na przykład
@FlakyTest(tolerance = 3)
public void myTest() {
// Test that sometimes fails for no good reason
}
Aktualizacji: Widzę, że używasz espresso. Wtedy ... nie, niestety nie jest to obsługiwane przez android-test-kit
. Ale tutaj jest żądanie funkcji: https://code.google.com/p/android-test-kit/issues/detail?id=153
Po prostu użyj cyklu FOR
. Na przykład:
@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;
}
To nie jest poprawne! Przed każdym testem należy wykonać niektóre ustawienia/config. Z twoją sugestią, zostanie ona wykonana tylko raz, a następnie test zostanie uruchomiony. Po drugie, gdy test się nie powiedzie, zostanie zakończony. To nie będzie działało dłużej z powodu kolejnych iteracji. Po trzecie, ma to na celu sprawdzenie stabilności przebiegu testowego i musi być wykonane na rzeczywistym kodzie testowym, który ma zostać przesłany. – user846316
Nie podałeś tych informacji w swoim pytaniu ... – Konstantin
Zastosowanie parameterized testów JUnit z kilkoma instancjami pustego parametru zestawu:
@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
}
}
parametrycznego klasa Test uruchamia wszystkie swoje metody testowe raz dla każdego elementu w sposobie oznaczonym @Parameters
adnotacji . Zazwyczaj używa się go do uruchomienia testu o różnych wartościach początkowych, ale jeśli nie ma żadnych wartości do ustawienia, test jest po prostu powtarzany tyle razy, ile chcesz.
Test zostanie zaliczony tylko wtedy, gdy przejdą wszystkie wystąpienia.
Nie sądzę, że IJ to popiera. Jeśli nie chcesz dotykać swojego kodu testowego, możesz to zrobić, ustawiając -e; dla i in {1..20}; do ./gradlew connectedAndroidTest; done'. –