Pytanie Test nie powiódł się: nie można ukończyć testu. Oczekiwano 1 testów, otrzymanych 0


Spróbuj uruchomić test JUnit (robotium) dla mojej aplikacji.

public class MainTest extends ActivityInstrumentationTestCase2<MainActivity> {
    private Solo solo;

    public MainTest() {
        super("nix.android.contact", MainActivity.class);// TODO Auto-generated constructor stub
    }

    protected void setUp() throws Exception {
        super.setUp();
        solo = new Solo(getInstrumentation(), getActivity());
    }

    public void AddContact() {
        solo.assertCurrentActivity("main", MainActivity.class);
    }
}

Oczywisty

 <instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="nix.android.contact" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <uses-library android:name="android.test.runner" />
</application>

Kiedy próbuję uruchomić test, wejdź do konsoli:

Test nie powiódł się: nie można ukończyć testu. Oczekiwano 1 testów, otrzymanych 0

12
2017-07-24 22:05


pochodzenie




Odpowiedzi:


Miałem ten problem, gdy nie miałem konstruktora no-args.

public class MainActivityTest extends
    ActivityInstrumentationTestCase2<MainActivity_> {

public MainActivityTest() {
    super(MainActivity_.class);
}
...

5
2017-10-10 20:00





Problem leży w twoim telefonie

super("nix.android.contact", MainActivity.class);

W moim kodzie mam

super("nix.android.contact", Class.forName("nix.android.contact.MainActivity"));

Zrobiłem to również w ten sposób, bez konieczności nazwania Generic dla ActivityInstrumentationTestCase 2

public class TestApk extends ActivityInstrumentationTestCase2 {

    private static final String TARGET_PACKAGE_ID = "nix.android.contact";
    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "nix.android.contact.MainActivity";

    private static Class<?> launcherActivityClass;
    static{
            try {
                    launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
            } catch (ClassNotFoundException e) {
                    throw new RuntimeException(e);
            }
    }

    @SuppressWarnings("unchecked")
    public TestApk() throws ClassNotFoundException {
            super(TARGET_PACKAGE_ID, launcherActivityClass);
    }

1
2017-07-24 22:14





Miałem ten sam komunikat o błędzie. Problem polegał na tym, że nazwa mojej metody testowej musiała zaczynać się od "testu".

Na przykład: testMethod1() działa podczas method1Test() podaje błąd.


1
2017-10-07 11:15



Dobrze. Wszystkie metody muszą mieć nazwy z prefiksem "test"! - Alex
Czy to żart? - Janosch Pelzer


Sprawdź, czy nie rozwijasz metody, od której zależy Twój test, ale nic w aplikacji nie używa - logcat będzie narzekać na brakującą klasę lub metodę z pakietu aplikacji.

Spróbuj odinstalować pakiet docelowy, aby sprawdzić, czy nie zostało ono z alternatywnej wersji (jeśli na przykład używasz Mavena przy Eclipse).


0
2017-09-26 12:19





Miałem ten błąd i naprawiłem go, usuwając parametr z metody konstruktora, został stworzony przez kreatora Eclipse jako:

public OptionsActivityTest( String name ) {

Właśnie musiałem usunąć "String name", aby moje testy znów działały.


0
2018-01-25 17:49





Podczas testowania aplikacji miałem ten sam problem.
Czasami to działa, ale większość razy test się nie udał i podniósł ten sam błąd.

Test zakończył się niepowodzeniem.
  Powód: "Testowanie nie powiodło się. Oczekiwano 1 testu, otrzymano 0 '.
  Sprawdź urządzenie logcat, aby poznać szczegóły

Sprawdziłem nazwę testu we wszystkich moich testach i tak samo było w dwóch klasach, zmieniłem nazwę testu i działa, gdy ponownie rozpocznę test.

Może również powodować błąd, gdy moje urządzenie zostanie odłączone od komputera.


0
2018-04-19 05:49



Jeśli masz nowe pytanie, poproś o to, klikając przycisk Zadaj pytanie przycisk. Dodaj link do tego pytania, jeśli pomoże to w zapewnieniu kontekstu. - Z recenzji - Ewoud
To tak naprawdę nie odpowiada na pytanie. Jeśli masz inne pytanie, możesz je poprosić, klikając Zadaj pytanie. Możesz również dodaj nagrodęzwrócić więcej uwagi na to pytanie, gdy już wystarczy reputacja. - Z recenzji - Dipali s.


Miałem ten sam problem podczas testowania oprzyrządowania na Androida (@RunWith (AndroidJUnit4.class)).

Wystąpił następujący błąd:

Tests on Nexus_5X_API_26(AVD) - 8.0.0 failed: 
Test run failed to complete. Expected 156 tests, received 152

Problem polegał na tym, że jedna z klas testowych zawodziła w metodzie oznaczonej @Przed zajęciami, w związku z tym nie przeprowadzono żadnych testów dla tej konkretnej klasy. Co więcej, wyjątek, który został wrzucony do środka @Przed zajęciami nie dotarło do wyników testów / danych wyjściowych / raportu. Dlatego trudno było znaleźć przyczynę "Oczekiwano N testów, otrzymano M" Komunikat o błędzie.

Tak więc, jeśli napotkasz na ten sam problem - sprawdź implementacje @Before i @BeforeClass - wyjątek może być przyczyną. Mam nadzieję że to pomoże.


0
2018-06-19 10:29





Wszystkie nazwy testów powinny zaczynać się od prefiksu "test".


-1
2018-04-25 06:58