【问题标题】:Spring Tool Suite finds spring-boot integration test configuration and does not start main applicationSpring Tool Suite 发现 spring-boot 集成测试配置并没有启动主应用
【发布时间】:2015-07-19 08:48:57
【问题描述】:

我在使用 Spring Tool Suite 和 spring-boot 时遇到了一些困难。

我创建了一个自定义的 Maven spring-boot-web-application,包括几个 JUnit 测试,其中一个测试是一个集成测试,它有一个 testapplication 的配置。

如果我想通过 Spring Tool Suite(运行为 -> Spring Boot Application)启动 spring-boot-web-application 应用程序不会启动,因为这两种配置( src/main/java, src/test/java )被发现并相互冲突。

一旦我从构建路径中删除测试资源,应用程序就会按预期启动。

Spring Tool Suite 中是否有任何设置可以防止启动 spring-boot-web-application 时将测试资源添加到类路径中?

提前谢谢你!

【问题讨论】:

  • 我正在使用 Spring Tool Suite 3.6.4.RELEASE 和 spring-boot 1.2.3.RELEASE 和 Java 1.8
  • 我记得最近修复了一个可能与此相同的错误。将鼠标悬停在您对问题的描述有点模糊,无法确定。 issuetracker.springsource.com/browse/STS-4085
  • 请澄清“启动失败”的实际作用。有错误吗?请包括错误消息/堆栈跟踪。
  • @Kris 感谢您的回复!为了有更好的讨论基础,我创建了一个小演示应用程序github.com/flexguse/spring-boot-integration-test。也许这不是 Spring Tool Suite 的问题,而是我的应用程序配置的问题 - Christoph
  • 您能否添加有关如何“启动应用程序”的更多详细信息。我的意思是,在 STS / Eclipse 中有很多方法(菜单、工具栏按钮等)来运行事物。你只是说“当我开始 X”,这是相当模糊的。尽可能精确,我可以尝试重现它。

标签: spring-boot spring-tool-suite


【解决方案1】:

STS 3.6.4 中有一个bug,它会导致 maven 项目上“运行方式 >> Spring Boot App”的类路径包含“测试内容”(源文件夹和 jar 依赖项)位于运行时类路径中.

该错误是一个回归,因为它在 3.6.3 中不存在。该错误已在 master 中修复,该修复将成为 STS 3.7.0 的一部分。您现在可以通过从每晚更新站点更新您的 STS 安装来获得此修复:

http://dist.springframework.org/snapshot/IDE/nightly/

打开“帮助>>安装新软件”并将上述链接粘贴到“使用”字段中,然后安装“核心”部分。安装程序会通知您您已经拥有这些,并将执行升级。

升级成功后,“Run As >> Boot App”应该不再在运行时类路径上有测试内容。

【讨论】:

  • 我相信这是 w.r.t 的正确答案。你的问题。即“如何避免我的类路径上的测试资源”。但是,请注意,除此之外,您的演示项目似乎还有其他问题,我认为这些可能是不相关的问题,并且......如果您无法解决这些问题,您应该提出一个新问题。
  • 嗨,克里斯,非常感谢!我会尝试夜间快照,如果我仍然遇到问题,我肯定知道原因在我的代码中;)
  • 演示应用程序已更新,因此它可以用作使用 spring-security 进行集成测试的示例 spring-boot 应用程序
猜你喜欢
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2015-03-21
  • 2017-09-03
  • 2015-10-14
  • 1970-01-01
相关资源
最近更新 更多