2010-01-31 15 views
33

Jestem nowicjuszem w Javie i próbuję uruchomić test jednostki na zajęciach, które piszę. Eclipse (3.5) utworzył dla mnie klasę testów jednostkowych i dodał Junit4 do ścieżki mojej klasy.Nie można uruchomić testu JUnit 4 w projekcie Eclipse Android

Moja Klasa:

public class DistanceUtil 
{ 

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

} 

Moje testy jednostkowe:

public class DistanceUtilTest { 

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

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

} 

Kiedy prawym przyciskiem myszy na badanej jednostki i wybierz Uruchom jako JUnit testu pojawia się następujący:

# 
# 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 
# 

Ktoś wpadł na pomysł, jak to naprawić?

Dzięki

Odpowiedz

53

Po przeszukiwane Google na odpowiedź, to wygląda to może mieć coś wspólnego z Androidem narzędzi programistycznych.

Poniżej przedstawiamy kroki podjęte od this comment wątku:

  1. prawym przyciskiem myszy na projekcie -> uruchom -> uruchom konfigurację
  2. wybierz projekt JUnit
  3. Przejdź do zakładki ścieżce klasy
  4. usuwają Wpis w strukturze Androida
  5. wybierz pozycje początkowe
  6. kliknij przycisk Zaawansowane
  7. wybierz Dodaj Bibliotece
  8. Ok
  9. Wybrał "JRE system biblioteczny"
  10. Następny
  11. wykończenie
  12. Trzeba również dodać biblioteki JUnit więc śledzić kroki 5 i 11 i wybierz "JUnit" zamiast "JRE System Library"
  13. Możesz teraz uruchomić swój projekt jako Junit.
+1

Fantastyczne! Odpowiedziałem za 6 minut! Wielkie dzięki – Roaders

+2

As [wskazane przez Z] (http://independentlyemployed.co.uk/2010/11/17/worked-out-why /), powodem tego wydaje się być fakt, że projekt jest uruchamiany na maszynie JVM z kodem bajtowym Dalvik - więc oczywiście dławiki uruchomieniowe. – idbrii

1

Ponieważ instrukcje Alex Spurling nie są już ważne dla Eclipse Juno i najnowszej Android SDK, mogą być przydatne do nadać inną alternatywę:

  1. utworzyć oddzielną zwykłego projektu biblioteki Java, który mieści cały kod nie ma zależności od platformy Android.
  2. Napisz normalnie testy JUnit.
  3. Dołącz ten projekt do projektu Android jako odniesienie do biblioteki.
  4. Do rejestrowania użyj SLF4J lub innej biblioteki wysokiego poziomu.

To trochę kłopotów przy małych projektach, ale OTOH pomaga wymuszać modularność i segregację interfejsów.

Powiązane problemy