Подтвердить что ты не робот

Не удалось выполнить тестовый прогон: пробный запуск завершился неудачно. Ожидаемые 1 тесты, полученные 0

Я попытался запустить тест JUnit (robotium) для моего приложения:

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);
    }
}

манифест

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

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <uses-librar

y android:name="android.test.runner" />
    </application>

Когда я пытаюсь запустить тест, в консоли появляется ошибка:

Test run failed: Test run failed to complete. Expected 1 tests, received 0

Я попытался создать другой тест другого приложения (очень простое приложение), и это работает.

4b9b3361

Ответ 1

У меня была эта проблема, когда у меня не было конструктора no-args.

public class MainActivityTest extends
    ActivityInstrumentationTestCase2<MainActivity_> {

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

Ответ 2

Проблема в вашем вызове

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

В моем коде у меня есть

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

Я также сделал это таким образом, не называя Generic для 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);
    }

Ответ 3

У меня было такое же сообщение об ошибке. Проблема заключалась в том, что мое имя метода тестирования должно начинаться с "теста".

Например: testMethod1() работает, пока method1Test() выдаст ошибку.

Ответ 4

Убедитесь, что вы не проверяете метод, на который зависит ваш конструктор тестов, но что ничего в приложении не используется - logcat будет жаловаться на отсутствующий класс или метод из вашего пакета приложений.

Попробуйте удалить целевой пакет, чтобы проверить, не осталось ли это из альтернативной сборки (если, например, вы используете Maven рядом с Eclipse).

Ответ 5

У меня была эта ошибка, и я исправил ее удаление параметра из метода конструктора, он был создан мастером Eclipse как:

public OptionsActivityTest( String name ) {

Мне просто пришлось удалить "String name", чтобы мои тесты снова работали.

Ответ 6

У меня была такая же проблема, когда я тестировал свое приложение.
Иногда это работает, но в большинстве случаев тест не проходит и выдает ту же ошибку.

Тест не удалось запустить до завершения.
Причина: "Не удалось завершить тестовый запуск. Ожидается 1 тест, получено 0 '.
Проверьте устройство LogCat для деталей

Я проверил имя теста во всех моих тестовых классах, и оно совпадает в двух классах, я изменил название теста, и оно работает, когда я снова запускаю тест.

Это также может привести к ошибке, когда мое устройство отключается от компьютера.

Ответ 7

У меня была такая же проблема при выполнении инструментария тестов на Android (@RunWith (AndroidJUnit4.class)).

У меня была следующая ошибка:

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

Проблема заключалась в том, что один из тестовых классов не работал внутри метода, помеченного @BeforeClass, следовательно, тесты для этого конкретного класса не выполнялись. Более того, исключение, которое было сгенерировано внутри @BeforeClass, не попало в тест-вывод/отчет. Поэтому было трудно найти причину сообщения об ошибке "Ожидается N тестов, получено М".

Итак, если вы столкнулись с той же проблемой - проверьте свои реализации @Before и @BeforeClass - исключение может быть причиной. Надеюсь это поможет.

Ответ 8

У меня была такая же проблема, когда я тестировал свое приложение. Кто-то, кто имеет точное решение, можете ли вы повторить здесь?

Ответ 9

У меня была такая же проблема, когда я тестировал свое приложение. Кто-то, кто имеет точное решение, можете ли вы повторить здесь?

Ответ 10

Это не сработало для меня. Когда я запускаю тест, отображается ошибка

Тест не удалось запустить до завершения. Причина: "Не удалось завершить тестовый запуск. Ожидается 1 тест, получено 0 '. Проверьте устройство logcat для получения подробной информации. Тестовый запуск не выполнен: Тестовый запуск не выполнен. Ожидается 1 тестов, получено 0

Ответ 11

Все имена тестов должны начинаться с префикса "test".