N'a pas pu initialiser plugin: interface org.mockito.greffon.MockMaker

je reçois exception suivante une fois les tests de démarrage:

    Testcase: treeCtorArgumentTest(com.xythos.client.drive.cachedtree.CachedTreeTest):  Caused an ERROR
Could not initialize plugin: interface org.mockito.plugins.MockMaker
java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker
    at org.mockito.internal.configuration.plugins.PluginLoader.invoke(PluginLoader.java:66)
    at com.sun.proxy.$Proxy7.isTypeMockable(Unknown Source)
    at org.mockito.internal.util.MockUtil.typeMockabilityOf(MockUtil.java:29)
    at org.mockito.internal.util.MockCreationValidator.validateType(MockCreationValidator.java:22)
    at org.mockito.internal.creation.MockSettingsImpl.validatedSettings(MockSettingsImpl.java:168)
    at org.mockito.internal.creation.MockSettingsImpl.confirm(MockSettingsImpl.java:162)
    at org.mockito.internal.MockitoCore.mock(MockitoCore.java:64)
    at org.mockito.Mockito.mock(Mockito.java:1687)
    at org.mockito.Mockito.mock(Mockito.java:1600)
    at com.xythos.client.drive.cachedtree.CachedTreeTest.setUp(CachedTreeTest.java:51)
Caused by: java.lang.NoClassDefFoundError: net/bytebuddy/dynamic/loading/ClassLoadingStrategy
    at org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.<init>(SubclassByteBuddyMockMaker.java:33)
    at org.mockito.internal.creation.bytebuddy.ByteBuddyMockMaker.<init>(ByteBuddyMockMaker.java:22)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:54)
    at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:18)
    at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:17)
    at org.mockito.internal.util.MockUtil.<clinit>(MockUtil.java:24)
Caused by: java.lang.ClassNotFoundException: net.bytebuddy.dynamic.loading.ClassLoadingStrategy
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

C'est mon test:

package com.xythos.client.drive.cachedtree;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;

@RunWith(MockitoJUnitRunner.class)

    public class CachedTreeTest {

        public CachedTreeTest() {
        }

        @Test
        public void treeCtorArgumentTest() {
        somemock m = mock(SomeClass.class);
        }
    }

J'utilise NetBeans 8.2. J'ai téléchargé mockito-core-2.7.0.jar, puis j'ai sélectionné "bibliothèques de Test"- > "ajouter Jar" et j'ai ajouté mockito-core-2.7.0.pot.

Classpath et tout semble ok, j'ai'm toujours des exception.

des conseils?

22
demandé sur Paskas 2017-01-31 14:42:40

8 réponses

Si vous utilisez powermock assurer que vos dépendances point:

org.powermock:powermock-api-mockito2

au lieu de

org.powermock:powermock-api-mockito
43
répondu Addev 2017-11-14 20:30:21

référence manquante à:

  • byte-copain-1.6.5.jar
  • byte-copain-agent-1.6.5.jar
  • objenesis-2.5.jar

Depuis Mockito 2.0.2 bêta, Mockito-core a des dépendances.

28
répondu Paskas 2017-01-31 13:39:47

J'ai eu Byte Buddy sur classpath (est un dep transitif de Mockito 2.8.9) et j'ai toujours eu l'exception. La raison pour moi était que j'ai fait les tests de L'unité avec JRE au lieu de JDK. Passer à JDK a marché pour moi.

3
répondu Stefano L 2017-06-16 14:18:56

j'ai eu le même problème - même stacktrace apparaissent dans mon journal. C'est typiquement un problème avec la configuration du projet... Ou

le problème peut être dans les bocaux bytebuddys si ceux-ci n'ont pas été téléchargés correctement.

quand j'essaie de vérifier manuellement ClassLoadingStrategy Class, j'obtiens zip erreur.

dans ce cas, il suffit de supprimer manuellement le Byte Buddy du répertoire maven local, habituellement situé à:

{home}/.m2 / repository / net/bytebuddy/



Le prochain essai pour exécuter le projet ou le test ils seront téléchargés à nouveau et devraient fonctionner comme prévu.

malheureusement commun ClassLoader Java fait face de la même manière lorsque la classe ou la jarre manquante ainsi que la jarre est corrompue.

2
répondu vdou 2017-10-23 10:31:02

dans mon cas, un paramètre env conduira également à cette erreur:

dans ubuntu 16.04, java et javac avaient été mis à jour-alternatives à 7 mais $ JAVA_HOME avait été mis à tort à 8

j'ai enlever le $JAVA_HOME, et tout retour à la normale

0
répondu cfz 2018-04-17 04:57:29

j'ai eu le même exception lorsque le commutateur Java 10 et la botte de printemps 2. Cette dépendance combinaison fonctionné pour moi:

    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>2.0.2-beta</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy</artifactId>
        <version>1.8.16</version>
    </dependency>
    <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy-agent</artifactId>
        <version>1.8.16</version>
        <scope>test</scope>
    </dependency>
0
répondu Svitlana Onish 2018-08-06 08:19:06

Ajouter un aspect bnd à cela

Ajout réponse de Paskas, vous devez également inclure les dépendances dans le fcén repository maven, si vous en utilisez un (comme mon cnf/central.mvn).

org.mockito:mockito-core:2.21.0
net.bytebuddy:byte-buddy:1.8.15
net.bytebuddy:byte-buddy-agent:1.8.15
org.objenesis:objenesis:2.6

et pour faciliter le référencement, vous pouvez inclure un bnd variable cnf/build.bnd

mockito: org.mockito:mockito-core; version=2.21.0,\
         net.bytebuddy:byte-buddy; version=1.8.15,\
         net.bytebuddy:byte-buddy-agent; version=1.8.15,\
         org.objenesis:objenesis; version=2.6

et dans le fichier bnd de votre projet

-testpath:\
    ${mockito}
0
répondu Zymus 2018-08-09 07:23:27

j'ai eu le même problème dans un projet existant. J'ai utilisé java 8 et en plus installé java 10. Alors j'ai commencé à avoir cette exception. J'ai désactivé java 10, ça n'a pas aidé. J'ai supprimé les pots bytebuddy de maven repo, ça n'a pas aidé. Ce n'est qu'après avoir enlevé tous les pots de maven repo que j'ai pu compiler à nouveau le projet.

0
répondu Roman 2018-08-29 13:25:26