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

Не удается запустить тестовый пример JUnit 4 в проекте Eclipse Android

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

Мой класс:

public class DistanceUtil 
{

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

}

Мой unit test:

public class DistanceUtilTest {

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

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

}

Когда я нажимаю правой кнопкой мыши на unit test и выбираю run as 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
#

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

Спасибо

4b9b3361

Ответ 1

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

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

  • Щелкните правой кнопкой мыши проект → запустить → выполнить конфигурацию
  • Выберите проект Junit
  • Перейдите на вкладку пути к классам
  • удалить фреймворк Android
  • выберите начальные записи
  • нажмите на расширенный
  • выберите Добавить библиотеку
  • Ok
  • Выберите "Системную библиотеку JRE"
  • Далее
  • отделка
  • Вам также нужно добавить библиотеку JUnit, чтобы выполнить шаги с 5 по 11 и выбрать "Junit" вместо "JRE System Library"
  • Теперь вы можете запустить свой проект как Junit.

Ответ 2

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

  • Создайте отдельный обычный проект библиотеки Java, в котором содержится весь код, который не имеет зависимостей от платформы Android.
  • Обычно пишите тесты JUnit.
  • Включите этот проект в проект Android в качестве справочника библиотеки.
  • Используйте SLF4J или другую библиотеку высокого уровня для ведения журнала.

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