【问题标题】:When adding GWT into classpath, junit test failed with NoSuchMethodError, why?将 GWT 添加到类路径时,junit 测试失败并出现 NoSuchMethodError,为什么?
【发布时间】:2011-10-14 21:31:11
【问题描述】:

我有一个使用 GWT 的项目。 我使用maven来管理依赖,所以gwt是自动添加的。 当我右键单击我的测试文件夹并作为 Junit 测试启动时,我有几个正确运行的 junit 测试。

现在,我使用谷歌插件 eclipse(右键单击,属性,启用 gwt)将我的项目转换为 gwt 项目。

当我这样做时,它会自动将 gwt 添加到构建路径中(通常不需要它,因为我已经在我的 maven 依赖项中得到了它,但 gpe 似乎需要它)。

我重新运行了我的 junit 测试(使用 eclipse)和一个 NoSuchMethodError(我确信存在被指控的方法)带有很多测试。

但如果我使用 maven (mvn test) 运行测试,所有测试都会成功!

我使用 GWT 2.3.0、Junit 4.8.2、Eclipse Indigo

为什么在我的类路径中添加 gwt(通过 gpe)会导致我的 junit 测试失败(仅在 eclipse junit runner 中)?以及如何解决?

【问题讨论】:

标签: eclipse gwt junit classpath


【解决方案1】:

好的,我找到了解决方案:

运行配置 > 我的 junit 配置 > 类路径

在这里,我在项目文件夹之前添加了 maven 依赖项。

在那之后,一切都像魅力一样运行。

【讨论】:

    【解决方案2】:

    查看此GWT FAQ entry(第 3 步)。

    3 .如果您的项目使用 Apache Tomcat 库,请确保 GWT SDK 库位于项目的类路径上(项目属性 > Java 构建路径 > 订单和导出)。否则,在托管/开发模式下启动应用程序时,您可能会收到 java.lang.NoSuchMethodError。

    【讨论】:

    • 嗯,这不是问题,因为问题是当我运行 Junit 时,但是当我尝试你所说的时,我的代码不再编译了。我发现错误是我将 cup 用于语法解析器,而 GWT 也使用了它!我必须想办法在测试期间强制使用我的 cup 依赖而不是 gwt。
    猜你喜欢
    • 2012-05-27
    • 2020-10-16
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多