[英]NoClassDefFoundError when using Powermock
我正在使用PowerMock
測試運行器運行junit
測試用例。 我正在使用以下命令行來執行它:
java -cp .:junit-4.9b2.jar:easymock-3.0.jar:powermock-easymock-1.4.8-full.jar org.junit.runner.JUnitCore SampleTest
這樣做時,我收到此錯誤:
initializationError(SampleTest)
java.lang.NoClassDefFoundError: org/junit/internal/runners/TestClassRunner
...
我該如何解決?
我剛剛解決了這個問題,當我添加@RunWith(PowerMockRunner.class)
屬性時, eclipse
自動導入:
import org.powermock.modules.junit4.legacy.PowerMockRunner;
我需要做的就是改變它:
import org.powermock.modules.junit4.PowerMockRunner;
現在它適用於JUnit 4.8.2
。
第二個運行器用於運行舊版本的JUnit
- 特別是4.3
及更早版本。
使用JUnit 4.X或更高版本導入舊版PowerMockRunner.class時會發生此異常,因為在將此類遺留類與@RunWith批注一起使用時無法運行。 我通過用新版本替換舊的舊版本導入解決了這個問題。
導入錯誤:
import org.powermock.modules.junit4.legacy.PowerMockRunner;
正確導入:
import org.powermock.modules.junit4.PowerMockRunner;
我解決了這個問題。 我用舊版junit-4.0.jar。 但我仍然不明白為什么缺少類TestClassRunner,特別是在包powermock-easymock-junit-1.4.8.zip(有junit-4.8.2.jar)? junit-4.8.2.jar也缺少類TestClassRunner。
我正在使用JUnit 4.0 - 4.3並且我更新了我的maven依賴項以使用powermockito 2.0.0-beta.5版本。 它剛剛開始工作。
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.0-beta.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.0-beta.5</version>
<scope>test</scope>
</dependency>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.