Не удается запустить тестовый пример 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
#
Кто-нибудь понял, как я могу это исправить?
Спасибо
Ответы
Ответ 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 помогает обеспечить модульность и сегрегацию интерфейса.