2011-03-13 16 views
23

PowerMock test çalıştırıcısını kullanarak bir junit test koşusu çalıştırıyorum. bunu çalıştırmak için aşağıdaki komut satırını kullanıyorum:NoClassDefFoundEğer kullanırken Powermock

java -cp .:junit-4.9b2.jar:easymock-3.0.jar:powermock-easymock-1.4.8-full.jar org.junit.runner.JUnitCore SampleTest 

yüzden bu hatayı alıyorum yapıyor:

initializationError(SampleTest) 
java.lang.NoClassDefFoundError: org/junit/internal/runners/TestClassRunner 
... 

bunu nasıl düzeltebilirim?

cevap

0

Sorunu çözdüm. Eski versiyon junit-4.0.jar kullandım. Ama yine de neden testisferrunner sınıfının neden eksik olduğunu anlayamıyorum powermock-easymock-junit-1.4.8.zip (burada junit-4.8.2.jar var)? Junit-4.8.2.jar ayrıca TestClassRunner sınıfını da eksik. Ben @RunWith(PowerMockRunner.class) niteliğini eklendiğinde

Şimdi sadece bu bir çözüldü
+0

bakınız. Cevabımı görün – RonK

63

, eclipse otomatik ithal:

import org.powermock.modules.junit4.legacy.PowerMockRunner; 

bunu değiştirmek yapmanız gereken tek şey olmak:

import org.powermock.modules.junit4.PowerMockRunner; 

Ve şimdi JUnit 4.8.2 ile iyi çalışıyor.

İkinci koşucu, JUnit eski sürümleriyle çalışırken - özellikle 4.3 ve daha eski sürümler içindir. sadece geçici bir çözüm -

+0

Cevabınız için teşekkürler. – jatanp

+0

teşekkürler RonK !! – NiranjanBhat

+1

Bunun için çok teşekkür ederim :) – shafeeq

5

Bu, doğru bir çözüm değildir here

You're probably using the wrong PowerMockRunner. There's one runner made for JUnit 4.4 and above and a second runner made for JUnit 4.0-4.3 (although the latter also works for some older minor versions of JUnit 4.4).
Try switching from the org.powermock.modules.junit4.PowerMockRunner to org.powermock.modules.junit4.legacy.PowerMockRunner or vice versa. Look at the getting started guide to see how to configure this in maven.

İlgili konular