【问题标题】:Is it possible to configure tycho-surefire to run in the test phase?是否可以将 tycho-surefire 配置为在测试阶段运行?
【发布时间】:2025-12-06 10:15:02
【问题描述】:

我对 Maven 的了解不多,但我了解基础知识。我们正在使用 Tycho 构建 RCP 插件,我想知道为什么 Tycho 使用 integration-test 阶段在捆绑包中执行测试。

是否可以将某些类型的测试绑定到 Maven for Tycho 的 test 阶段而不是 integration-test 阶段?

如果有,怎么做?

【问题讨论】:

标签: maven tycho tycho-surefire-plugin


【解决方案1】:

Tycho 在 OSGi 容器中执行测试,这要求已编译的类已经打包为 OSGi 包。打包只发生在package 阶段,因此需要稍后执行测试。因此,tycho-surefire-plugin 默认在integration-test 阶段执行测试。

如果您可以在 Eclipse 中将测试作为“JUnit 测试”(而不是“JUnit 插件测试”)运行,那么您的代码和任何依赖项都不需要 OSGi 容器。在这种情况下,您也可以使用maven-surefire-plugin 运行测试。这个插件默认运行在test 阶段。我发现 this blog 描述了执行此操作所需的配置。

【讨论】:

  • 谢谢,这是有道理的。然而,这给我留下了另一个问题。是否将单元测试作为插件单元测试(我的意思是让 tycho 执行它们)或作为常规单元测试(让它们在没有 OSGi 打包的测试阶段执行)运行是否重要?如。我可以在测试阶段运行用于测试某个插件中的代码的单元测试,而不会造成任何麻烦(在不涵盖某些功能或其他方面)?我会将此标记为答案。虽然我想知道这是否可以做到没有副作用。
  • 这真的取决于您的代码 - 但您可以尝试一下。如果您的测试仍然通过,那么可能不需要 OSGi。
最近更新 更多