web-dev-qa-db-de.com

symbol PowerMockRunner kann nicht aufgelöst werden

Ich versuche, Powermock zum ersten Mal einzusetzen

Ich benutze build.gradle und fügte hinzu:

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

}

jetzt schaue ich auf meine Testklasse, die Folgendes hat:

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)

und erhalte diesen Fehler:

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

wie kommt es, PrepareForTest und nicht PowerMockRunner?

29
Elad Benda2

Sie müssen PowerMockRunner wie folgt importieren:

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

PowerMockRunner ist Teil von powermock-module-junit4.jar. Sie müssen das Glas explizit importieren

Sie können die Abhängigkeit für diese Dose gemäß Ihrer Anforderung angeben. __ Siehe diesen Link

41
Balaji Katika

Sie müssen nur die Abstufungsabhängigkeit hinzufügen 

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

oder wenn Sie Android Studio Version 3 oder höher verwenden

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

Ich bin diesem Fehler begegnet, weil mir nur die erste der folgenden Abhängigkeiten in meiner pom.xml hinzugefügt wurde. Stellen Sie sicher, dass Sie die folgenden Maven-Abhängigkeiten für PowerMock zu Ihrer pom.xml hinzufügen.

<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>
6
wateva

Ich war auch mit einem ähnlichen Fehler konfrontiert. Obwohl sich die Gläser bereits im Klassenpfad befinden, schlug Eclipse nicht vor, die PowerMockRunner-Klasse zu importieren. Es wurde der Fehler "Klasse kann nicht in einen Typ aufgelöst werden" ausgegeben. Ich musste den Import "org.powermock.modules.junit4.PowerMockRunner" manuell hinzufügen. 

0
pavithraCS

Für instrumentelle Tests müssen Sie androidTestImplementation "org.powermock: powermock-module-junit4: 1.6.4" verwenden.

Aber dann habe ich herausgefunden, dass Sie PowerMock nicht für instrumentelle Tests verwenden können:

PowerMock funktioniert nicht auf Android, wenn Sie es seit .__ auf einem Gerät ausführen. PowerMock verwendet die Byte-Code-Manipulation von JVM. Es wird funktionieren, wenn Sie .__ ausführen. es auf einer JVM allerdings.

( Link zu diesem Problem )

0
Bhola Bhala