Ответ 1
Возможно, это не ваша проблема, но я смог обойти это, используя приложение "Запустить как → Android".
Однако я не уверен, что вы используете андроид или нет. Возможно, проверьте конфигурацию Запуск для других проблем.
Я пытаюсь запустить тест с JUnit 4 и Robolectric на Eclipse, но все время получаю эту ошибку:
Invalid layout of java.lang.String at value
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (javaClasses.cpp:129), pid=3546, tid=140317899335424
# fatal error: Invalid layout of preloaded class
#
# JRE version: 7.0_07-b10
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.3-b01 mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
Мой тест очень прост. Это только для проверки всей работы:
@RunWith(RobolectricTestRunner.class)
public class FormatTest {
@Test
public void getFormatElapsedTimeOnSecondsTest(){
assertEquals("3seg","3seg");
}
}
Java, установленный в моей системе:
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
Я не понимаю, что произойдет.
Возможно, это не ваша проблема, но я смог обойти это, используя приложение "Запустить как → Android".
Однако я не уверен, что вы используете андроид или нет. Возможно, проверьте конфигурацию Запуск для других проблем.
Вам нужно скорректировать конфигурацию запуска.
Если вы хотите запустить JUnit-тест с помощью
"right click on test class in the package explorer"->"Run As"->"JUnit Test"
в проекте Android, вам нужно установить "Android JUnit Test Launcher" в качестве запуска. Вы используете эту пусковую установку Android, даже если ваша конфигурация запуска имеет тип "JUnit".
Вы можете найти его под:
"right click on test class in the package explorer"->"Properties"->"Run/Debug Settings"->"Edit..."
Пример:
Тест:
import junit.framework.TestCase;
public class ExampleTest extends TestCase{
public ExampleTest(String name){
super(name);
}
protected void setUp() throws Exception{
super.setUp();
}
protected void tearDown() throws Exception{
super.tearDown();
}
public void testFoo(){
fail("Not yet implemented");
}
}
Создайте конфигурацию запуска:
"Run"->"Run Configurations..."->"Right click on JUnit"->"New"->"Set project and Test class"->"Select Android JUnit Test Launcher"->"Run"
Примечание. Если вы используете x86 jdk, вы получите следующую ошибку, если ваша Launcher установлена в "Eclipse JUnit Launcher":
Invalid layout of java.lang.String at value
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (javaClasses.cpp:129), pid=3844, tid=4828
# fatal error: Invalid layout of preloaded class
#
# JRE version: 7.0_17-b02
# Java VM: Java HotSpot(TM) Client VM (23.7-b01 mixed mode windows-x86 )
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
Для меня было решение: Запустить → Запустить конфигурации... → на вкладке Тестовый клик Выбрать предпочтительный пуск и выбрать Использовать настройки конфигурации с выбором Android JUnit Test Launcher.
Удалить все записи в JUnit (левый столбец диалога Run Configurations, RightMouse - Delete).
Затем Запустить как → Тест JUnit и выберите Использовать настройки конфигурации с помощью Android JUnit Test Launcher.
Щелкните правой кнопкой мыши класс java с основными, запустите конфигурацию, затем перейдите на вкладку classpath, удалите там библиотеку android. затем запустите.
Надеюсь, это поможет.
Это проще. Got to Run- > Configuration и найдите JUnit и Android JUnit Tests. Удалите конфигурацию, если она есть. Затем в следующий раз, когда вы нажмете "Запустить", он спросит о настройке. Вы выбираете первый JUnit, а затем в следующем диалоговом окне активируете "Использовать настройки конфигурации", а затем выберите Android JUnit Test Laucher.
Такая же проблема возникла и для меня, и причина заключалась в том, что я добавил основной (String s []) метод в мой проект Android.
Поэтому просто удалите основной (String s []) метод из проекта и запустите в качестве приложения для Android.