den JUnit4 + hamcrest 1.3 + mockito çalışması için nasıl + mockito 2.8.47Eclipse çalışmaya JUnit 4.12 + hamcrest 1.3 başardı ettik yüzden eklediğinizde o onları bağımlılıklar olarak testlerim çalışır.Eclipse VE Tycho
junit 4.12
org.mockito.mockito-core 2.8.47
- :
(Bunu yaptım yolu eklentileri/bir özellik haline Maven Central aşağıdaki eserler paket ve P2 aracılığıyla bunları sağlamak için p2-maven-plugin kullanıyor
org.hamcrest.all 1.3.0
Eklentileri test bölümüme bağımlılıklar olarak ekleyerek testleri Eclipse'de çalışır.
Ancak, aynı parçanın Tycho inşa aşağıdaki mesajları ile başarısız olur:
java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader) previously initiated loading for a different type with name "org/hamcrest/Matcher"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:273)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:632)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:586)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:538)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:525)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:12)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.Assert.assertThat(Assert.java:923)
Yani diğer bazı eklenti benim parçası yapar önce paket org.hamcrest.Matcher
yükleniyor gibi görünüyor. Bu muhtemelen, JUnit/Hamcrest/Mockito kurulumunu çevreleyen içe/dışa aktarma/kısmi ithalat/kısmi ihracat kaoslarına 'dan kaynaklanmaktadır.
herkes bir fikri var mı - hatta daha iyi: bir çalışma örneği - üç bileşen sırasında kontroller için (ve Tycho (hızlı testler çalışıyor olmanıza çekler için) IDE içinde hem birlikte çalışmak almak nasıl bir yapı)?
Bence Mockito 2.8.47 zaten hamcrest var. – want2learn
Sadece Hamcrest ve JUnit üzerindeki bağımlılıkları olan bir test parçasında hata alıyorum. –
Sanırım problemin kaynağı, JUnit/Hamcrest/Mockito'nun etrafındaki ihracat kaosudur. P2-maven eklentisinin yanıltıcı MANİFLER üretmesi muhtemeldir. Sorunu yeniden oluşturmak için minimum bir proje ekleyebilir misiniz? –