J'essaie de traverser mon tout premier tutoriel JMock http://www.jmock.org /getting-started.html , et ce n'est pas bien allé.
Le problème que j'ai rencontré est ci-dessous: p> J'ai trouvé une solution sur Internet. S'il vous plaît voir ci-dessous: p> la solution consiste à garantir que toutes les dépendances sur les pots JMock se produisent
Avant les dépendances sur Junit dans chaque plug-in. De cette façon, Hamcrest est
Chargé de JMock, pas de Junit. EM> P> Ma compréhension de la solution est la suivante: Faire la classe de test Utilisez le bocal de Hamcrest de JMock au lieu de celui de Junit? Ai-je raison? Que dois-je faire dans Eclipse pour y arriver? P> Merci, P> Sarah P> P>
5 Réponses :
Vous pouvez utiliser Junit- dep em> .jar (plutôt que Junit.jar) qui n'inclut pas les types de hache-tête. Ensuite, les références de Hamcrest à JMock ne s'affrontent pas. P>
<dependency>
<groupId>junit</groupId>
<artifactId>junit-dep</artifactId>
<version>4.8.2</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3.0RC2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jmock</groupId>
<artifactId>jmock</artifactId>
<version>2.6.0-RC2</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
</exclusion>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-unit-test</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>
<!-- next libs are optional -->
<dependency>
<groupId>org.jmock</groupId>
<artifactId>jmock-junit3</artifactId>
<version>2.6.0-RC2</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jmock</groupId>
<artifactId>jmock-legacy</artifactId>
<version>2.6.0-RC2</version>
<scope>test</scope>
</dependency>
J'ai essayé de modifier cela, mais je devais seulement changer quelques lettres, alors ne me laisserait pas me laisser. Assurez-vous de modifier la version de HamCrest de 1.3.0-RC2 en 1.3, car c'est la dernière version disponible la plus récente.
Les bibliothèques L'ordre dans la configuration de la construction Eclipse sont les suivants: p>
Hamcrest-core-1.2.jar Hamcrest-bibliothèque-1.2.jar jmock-2.5.1.jar Jre [Javase-1.6] Junit_4.8.1.jar (partie de la distribution Eclipse) hamcrest.core_1.1.0 (groupé avec JUnit 4.8.1) P>
La solution est simple - assurez-vous que HamCrest.jar est avant la bibliothèque Junit incluse par Eclipse dans la classe de classe. P>
Je crois que si vous regardez l'onglet "Ordre and Export" dans la propriété Java Build Chemin (configurez le chemin de construction), vous constaterez que le JAR JUNIT est au-dessus du hamcrest.jar. Vous pouvez déplacer Hamcrest au-dessus du junit Jaire ici et le problème disparaîtra. P>
Cela m'est arrivé en raison de la double dépendance junit sur le projet. On ajouté par Eclipse et une des dépendances Maven (M2eclipse / M2e ajoute celui-ci à la classe de classe aussi). P>
Alors, supprimez celui-ci ajouté par Eclipse au projet en allant au projet> Propriétés> Piste de construction P>
Voir ci-dessous.
p>
Je viens de courir dans le même problème à essayer d'exécuter les tests dans un projet non éclipse que je venais d'importer. Après avoir regardé les autres réponses ici, j'ai remarqué que le pom.xml spécifié Junit 3 fort>. P>
donc j'ai simplement changé "junit_container / 4" à "junit_container / 3" dans .ClassPath code> ... et tous les tests ont réussi. P>