我加入了一个使用 Equinox/OSGi、Tycho 在 Eclipse RCP 平台上进行开发的项目。
我正在慢慢熟悉 OSGi 的类路径/类加载机制、tycho、Equinox 的工作原理等。
我正在使用模拟编写简单的单元测试,方法是将它们收集在测试包(它们是目标包的片段)中,但是我遇到了 ClassNotFound 错误,附加源代码的问题。我已经看到了一些建议,例如将测试作为 rcp 插件测试或在集成测试范围内使用 tycho。但是,我发现所有这些方法对于运行测试来说都非常缓慢并且会适得其反。
据我了解,这种环境(Tycho、Eclipse RCP 或两者)中的某种依赖解析机制与我的假设有点不同。当我将新实现添加到主机包以满足我的测试时,除非我为主机包运行 mvn install (tycho 正在接管),否则测试包不会选择所有新实现。有时,由于缺少依赖项,这需要完全安装项目。我尝试的另一种方法是将测试作为 JUnit-plugin 测试运行。由于 tycho 的依赖解析,该方法也很慢,并且它正在加载所有捆绑包。
我想知道运行单元测试的最佳方法是什么?(当我说单元测试时,我指的是单元测试的真正定义,其中交互被模拟并且测试在几毫秒内运行)。