gpt4 book ai didi

eclipse - 如何使 JUnit4 + Hamcrest 1.3 + Mockito 从 Eclipse 和 Tycho 工作

转载 作者:行者123 更新时间:2023-12-04 12:51:43 26 4
gpt4 key购买 nike

我已经成功获得 JUnit 4.12 + 火腿 1.3 + Mockito 2.8.47 在 Eclipse 中工作,以便当我将它们添加为依赖项时,我的测试将运行。

(我这样做的方法是使用 p2-maven-plugin 捆绑以下内容
将 Maven Central 中的工件转换为插件/功能并通过 P2 提供它们:

  • junit 4.12
  • org.mockito.mockito-core 2.8.47
  • org.hamcrest.all 1.3.0

  • 将插件添加到我的测试片段作为依赖项进行测试
    在 Eclipse 中运行。

    但是,同一片段的第谷构建将失败
    以下消息:
    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)

    所以似乎其他一些插件正在加载包 org.hamcrest.Matcher 之前 我的片段可以。这可能是由于
    围绕进口/导出/部分进口/部分导出的困惑
    JUnit/Hamcrest/Mockito 设置。

    有没有人有一个想法 - 或者甚至更好:一个工作示例 - 如何
    让这三个组件在 IDE 中一起工作(为了快速
    检查测试是否运行)和第谷(在构建期间进行检查)?

    最佳答案

    似乎加载器想要捆绑中的依赖项。

    但我猜你还没有把你的测试库放在一个包里。

    您可以尝试将它们添加到产品的依赖项中,以查看它的 react 。

    关于eclipse - 如何使 JUnit4 + Hamcrest 1.3 + Mockito 从 Eclipse 和 Tycho 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45218799/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com