Почему эта ошибка возникает при попытке запустить тестовый пример Junit на эмуляторе Android? - PullRequest
2 голосов
/ 09 января 2010

После выполнения некоторых инструкций на блоге Диего Торреса Я могу тестировать свои классы с помощью обычного тестового прогона Eclipse JUnit, однако я также хочу иметь возможность запускать свои модульные тесты из эмулированного Android среда.

На данный момент это не должно иметь никакого значения, поскольку классы, над которыми я работаю, выполняют очень простые числовые или сетевые задачи, но, очевидно, все, что связано с конкретными функциями UI или Android API, может быть когда-либо протестировано только на эмуляторе.

Я установил новую конфигурацию запуска типа AndroidJUnitTest, которая использует android.test.InstrumentationTestRunner, однако всякий раз, когда я запускаю тест, я получаю в консоли следующую ошибку:

[2010-01-09 00:45:23 - Pal1]Uploading Pal1.apk onto device 'emulator-5556'
[2010-01-09 00:45:23 - Pal1]Installing Pal1.apk...
[2010-01-09 00:45:25 - Pal1]Success!
[2010-01-09 00:45:25 - Pal1]Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5556
[2010-01-09 00:45:27 - Pal1]Test run failed: Unable to instantiate instrumentation ComponentInfo{org.stodge.traderpal/android.test.InstrumentationTestRunner}: java.lang.ClassNotFoundException: android.test.InstrumentationTestRunner in loader dalvik.system.PathClassLoader@43598c28

Как и следовало ожидать, тест завершается (фактически без выполнения каких-либо тестов после последнего сообщения «Невозможно создать экземпляр Instrument ComponentInfo».

На данный момент мои тестовые наборы состоят из не более чем кода котла-разметчика Junit3 и Junit4. Реализации тестов состоят только из вызовов fail (). Все, что мне нужно сделать на этом этапе, - это показать, что я могу выполнить базовый модульный тест в обеих средах, чтобы я мог начать разработку через тестирование.

Примечания: - Запуск Eclipse 3.5 на Ubuntu 64bit - Эмулятор установлен на уровень API 2 - Я новичок в Android и Java, так что извините за мои основные вопросы

1 Ответ

6 голосов
/ 09 января 2010

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

Вам не нужно импортировать библиотеки JUnit или что-то подобное; соответствующие классы TestCase и т. д. интегрированы в Android SDK.

Просто создайте новый класс в своем проекте и расширьте AndroidTestCase. Затем вы можете щелкнуть правой кнопкой мыши тестовый набор (или пакет тестовых наборов), который хотите запустить, и выбрать Запуск от имени & rarr; Тест Android JUnit.

Кроме того, я бы использовал уровень API выше 2. Практически ни одно из используемых устройств не работает под управлением Android 1.1; Вы можете смело переходить на уровень API 3, который является Android 1.5 и является большим улучшением по сравнению с предыдущими версиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...