2017-08-15 18 views
1

PowerMock/PowerMockitoを使用するテストを作成しようとしていますが、何らかの理由で、そのクラスでテストを実行しようとしたときにClassNotFoundExceptionが発生します。ここに私のapp.gradle powerMockito文は、次のとおりです。PowerMockを使用しているときClassNotFoundException - Android Jun32

:ここ

は私が受け取るスタックトレースがある

@RunWith(PowerMockRunner.class) 
@PrepareForTest(SettingsView.class) 
public class SettingsTests { 

    private SettingsView view; 

...:ここでは

androidTestCompile 'org.powermock:powermock:1.6.6' 
androidTestCompile 'org.powermock:powermock-module-junit4:1.6.6' 
androidTestCompile 'org.powermock:powermock-api-mockito:1.6.6' 

は私のテストクラスの始まりです
java.lang.ClassNotFoundException: com.app.SettingsTests 
at java.lang.Class.classForName(Native Method) 
at java.lang.Class.forName(Class.java:400) 
at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:161) 
at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:48) 
at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.createTestDelegators(AbstractTestSuiteChunkerImpl.java:111) 
at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.<init>(JUnit4TestSuiteChunkerImpl.java:71) 
at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.<init>(AbstractCommonPowerMockRunner.java:32) 
at org.powermock.modules.junit4.PowerMockRunner.<init>(PowerMockRunner.java:34) 
at java.lang.reflect.Constructor.newInstance0(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:430) 
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 
at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:77) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
at org.junit.runner.Computer.getRunner(Computer.java:40) 
at org.junit.runner.Computer$1.runnerForClass(Computer.java:31) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:101) 
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:87) 
at org.junit.runners.Suite.<init>(Suite.java:81) 
at org.junit.runner.Computer.getSuite(Computer.java:28) 
at android.support.test.internal.runner.TestRequestBuilder.classes(TestRequestBuilder.java:789) 
at android.support.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:753) 
at android.support.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:354) 
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:260) 
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1932) 
Caused by: java.lang.IllegalStateException: Failed to transform class with name com.app.SettingsTests. Reason: com.app.SettingsTests 
at org.powermock.core.classloader.MockClassLoader.loadMockClass(MockClassLoader.java:284) 
at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:192) 
at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass1(DeferSupportingClassLoader.java:77) 
at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:67) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 
... 27 more 
Caused by: javassist.NotFoundException: com.app.SettingsTests 
at javassist.ClassPool.get(ClassPool.java:452) 
at org.powermock.core.classloader.MockClassLoader.loadMockClass(MockClassLoader.java:262) 
... 31 more 

これを引き起こしている可能性があることは誰でも知っていますか? Junitバージョンは4.12

答えて

0

これがAndroidで動作するかどうかはわかりません。私は私のWebプロジェクトで同様の問題を抱えていて、javaassistの依存関係を無効にしてくれました。試してみる。

testCompile group: 'org.javassist', name: 'javassist', version: '3.18.2-GA' 
+0

これは機能しませんでした。 – hermt2

+0

私はアンドロイドで働いていません。これを見つけたあなたに役立つかもしれません。 https://github.com/powermock/powermock/issues/776 – want2learn

関連する問題