Невозможно запустить тестовый пример JUnit 4 в проекте Eclipse Android - PullRequest
33 голосов
/ 31 января 2010

Я новичок в Java и пытаюсь запустить модульный тест для класса, который пишу. Eclipse (3.5) создал для меня класс модульного тестирования и добавил Junit4 в мой путь к классам.

Мой класс:

public class DistanceUtil 
{

public static double metersToMiles( double meters ) 
{
    return 0;
}
public static double metersToKilometers( double meters ) 
{
    return 0;
}

}

Мой юнит-тест:

public class DistanceUtilTest {

@Test
public final void testMetersToMiles() {
    fail("Not yet implemented"); // TODO
}

@Test
public final void testMetersToKilometers() {
    fail("Not yet implemented"); // TODO
}

}

Когда я щелкаю правой кнопкой мыши на модульном тесте и выбираю запустить как Junit Test, я получаю следующее:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (classFileParser.cpp:3075), pid=5564, tid=4940
#  Error: ShouldNotReachHere()
#
# JRE version: 6.0_17-b04
# Java VM: Java HotSpot(TM) Client VM (14.3-b01 mixed mode windows-x86 )
# An error report file with more information is saved as:
# C:\Users\Giles Roadnight\workspaceAndroid\Cycloid\hs_err_pid5564.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

Кто-нибудь понял, как я могу это исправить?

Спасибо

Ответы [ 2 ]

53 голосов
/ 31 января 2010

После поиска в Google ответа, похоже, что это может иметь какое-то отношение к инструментам разработки Android.

Ниже приведены шаги, взятые из этого комментария тема:

  1. Щелкните правой кнопкой мыши по проекту -> запустить -> запустить конфигурацию
  2. Выберите проект Junit
  3. Перейти на вкладку classpath
  4. удалить запись фреймворка Android
  5. выбор записей начальной загрузки
  6. нажмите на расширенный
  7. выберите Добавить библиотеку
  8. Ok
  9. Выберите "Системная библиотека JRE"
  10. Далее
  11. отделка
  12. Вам также необходимо добавить библиотеку JUnit, поэтому выполните шаги с 5 по 11 и выберите «Junit» вместо «JRE System Library»
  13. Теперь вы можете запускать свой проект как Junit.
1 голос
/ 13 ноября 2013

Поскольку инструкции Алекса Сперлинга больше не действительны для Eclipse Juno и последней версии Android SDK, может быть полезно дать другую альтернативу:

  1. Создайте отдельный обычный проект библиотеки Java, в котором будет размещен весь код, который не имеет зависимостей от платформы Android.
  2. Пишите JUnit тесты нормально.
  3. Включите этот проект в проект Android в качестве справочника библиотеки.
  4. Используйте SLF4J или другую высокоуровневую библиотеку для регистрации.

Это немного хлопотно для небольших проектов, но OTOH помогает обеспечить модульность и разделение интерфейса.

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