Тестирование устройств Android в Eclipse: "Не удалось запустить тест"

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

Во-первых, это то, что я сделал.

В Eclipse я щелкнул правой кнопкой мыши мой проект, для которого я хотел бы создать тестовый проект. Я выбрал AndroidTools → Новый тестовый проект Я заполнил необходимую информацию, выбрав местоположение.. /MyApp/tests для нового проекта и выбрав MyApp в качестве тестируемого проекта. Все остальное было оставлено по умолчанию.

Пока это выполнялось, я получил следующее сообщение:

[2011-04-01 08:13:02 - WPMSTest] R.java был изменен вручную! Возврат к сгенерированной версии!

Но все было в порядке. У меня появилось новое исходное дерево в папке моих тестов.

Итак, я попытался выполнить его (сначала на аппаратном обеспечении, а затем на эмуляторе) с помощью RunAs → Android jUnit test.

В обоих забегах я получил ниже в консоли eclipse:

[2011-04-01 08:23:04 - WPMSTest] Запуск инструментария android.test.InstrumentationTestRunner на эмуляторе устройства-5554
[2011-04-01 08:23:04 - WPMSTest] Не удалось запустить тест

Мои два файла манифеста:

WPMSTest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.WPMS.test"
  android:versionCode="1"
  android:versionName="1.0">

<instrumentation android:targetPackage="com.WPMS" android:name="android.test.InstrumentationTestRunner" />
<application android:icon="@drawable/icon" android:label="@string/app_name">

<uses-library android:name="android.test.runner" />
</application>

WPMS:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.WPMS"
  android:versionCode="1"
  android:versionName="1.0">
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher_wpms">
    <activity android:name=".WPMS"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>    

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Я надеюсь, что кто-то видел что-то подобное раньше и может пролить свет на то, что я делаю неправильно. Пожалуйста, дайте мне знать, если вам нужны дополнительные файлы, и я обязательно отправлю их.

Спасибо!

Ответ 1

Мне не хватало TestSuite в моем тестовом проекте. После того, как мой класс AllTests расширил TestSuite, я прошел мимо ошибки.

Ответ 2

Для меня проблема заключалась в том, что я использовал JUnit 4. Когда я перешел на JUnit 3, он начал работать. Надеюсь, это поможет.

Ответ 3

[2011-04-01 08:13:02 - WPMSTest] R.java was modified manually! Reverting to generated version!

Вы получаете эту ошибку, когда вручную вносите изменения в файл R.java. Иногда, когда вы очищаете проект, файл R.java отсутствует. В таком случае вы должны либо скопировать ту же программу R.java(если она хранится где-то в виде копии), либо создать целый новый проект.

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

Ответ 4

У меня была та же проблема: JUnit 3 TestCase работает, но при запуске JUnit 4 TestCase я получил ошибку "Ошибка при запуске теста".

Но после того, как он предложит Клю, т.е. сделать тестовый класс JUnit 4, расширяет TestCase и переименовывает тестовый метод с помощью префикса "тест", тест запускает и запускает тест!