web-dev-qa-db-ja.com

シンボルPowerMockRunnerを解決できません

Powermockを初めて使用しようとしています

私はbuild.gradleを使用して追加しました:

dependencies {
...
    testCompile 'org.mockito:mockito-all:1.9.5'
    testCompile 'org.powermock:powermock-api-mockito:1.5.5'

}

今、私は持っている私のテストクラスを見ます:

import org.junit.Before;
import org.junit.runner.RunWith;
import org.mockito.Matchers;
import org.powermock.core.classloader.annotations.PrepareForTest;


@RunWith(PowerMockRunner.class)
@PrepareForTest(GeoUtils.class)

このエラーが発生します:

@RunWith(PowerMockRunner.class)
             ^
cannot resolve symbol PowerMockRunner 

どうしてPrepareForTestではなくPowerMockRunnerを解決するのでしょうか?

33
Elad Benda2

次のようにPowerMockRunnerをインポートする必要があります。

import org.powermock.modules.junit4.PowerMockRunner;
27
David Conrad

PowerMockRunnerはpowermock-module-junit4.jarの一部です。 jarを明示的にインポートする必要があります

要件に応じて、このjarの依存関係を指定できます。これを参照してください link

41
Balaji Katika

グラドル依存関係を追加するだけです

testCompile "org.powermock:powermock-module-junit4:1.6.4"

またはAndroid Studioバージョン3+

testImplementation "org.powermock:powermock-module-junit4:1.6.4"
16
maruti060385

Pom.xmlには次の依存関係の最初の要素のみが追加されていたため、このエラーに直面しました。次のPowerMockのMaven依存関係をpom.xmlに追加してください。

<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.6.3</version>
</dependency>
7
wateva

私も同様のエラーに直面しました。 jarはすでにクラスパスにありますが、EclipseはPowerMockRunnerクラスをインポートすることを提案しませんでした。 「クラスを型に解決できません」というエラーが発生していました。インポート「org.powermock.modules.junit4.PowerMockRunner」を手動で追加する必要がありました。

1
pavithraCS

インストゥルメンタルテストの場合は、androidTestImplementation "org.powermock:powermock-module-junit4:1.6.4"を使用する必要があります

しかし、その後、PowerMockを機器テストで使用できないことがわかりました。

PowerMockはJVMバイトコード操作を使用しているため、デバイスで実行した場合、PowerMockはAndroidでは動作しません。JVMで実行しても動作します。

この問題へのリンク

0
Bhola Bhala