如何修改Eclipse Run Configuration类路径?

时间:2014-03-05 13:12:01

标签: java eclipse junit osgi eclipse-jdt

我正在Eclipse JDT中开发一个项目,它在OSGI上有可选的依赖项 - 也就是说,它支持用作OSGI包,如果它在OSGI环境中用作bundle,它也会引用一些来自OSGI的课程。

现在我想编写JUnit测试用例,既可以在OSGI中运行,也可以在没有OSGI的情况下运行,包含在两个不同的测试套件中。 OSGI测试作为JUnit Pulg-in测试运行,非OSGI测试应该作为正常的JUnit测试运行。

现在我遇到了问题,我在Eclipse中找不到任何方法来准确指定JUnit测试运行配置的类路径并排除可选的OSGI jar。

有没有办法排除jar或修改Eclipse Run Configuration的默认类路径? 如果没有,是否有人有建议,如何在这种情况下设置JUnit测试?

我能找到的唯一解决方案是,从我的单元测试中创建一个jar文件,并在类路径上使用测试jar文件从不同项目运行没有OSGI的测试。但我更喜欢更优雅的解决方案,理想情况下无需第二个测试项目。

2 个答案:

答案 0 :(得分:2)

在Gimbys评论的帮助下,我能够解决问题。虽然在Eclipse中无法修改JDT生成的默认类路径,但可以完全删除默认类路径,然后在运行时配置的类路径选项卡中添加自己的类路径。

要删除默认类路径,必须选择以当前运行项目命名的根条目,然后单击“删除”按钮。之后,可以添加应该在类路径中加载的所有jar文件和项目。这种方法的缺点是,jar文件通常由Eclipse插件提供,例如: junit.jar,然后也必须手动选择(例如,通过将其添加到项目的库文件夹或通过选择Eclipse安装文件夹的plugins目录中的外部jar)。

答案 1 :(得分:0)

我建议您将项目拆分为4个独立的项目:

  • 逻辑:此软件包包含所有逻辑,基本上是您的程序/插件所做的
  • Logic.plugin :此项目类似于插件项目(OSGI-Bundle)。该项目仅包含插件所需的配置以及依赖于osgi的所有内容。它依赖于您的逻辑项目。
  • Logic.plugin.test :osgi包的所有测试用例。这是分离逻辑和测试用例的常规插件方法
  • Logic.cli :此项目包含命令行界面(或您的备用应用程序)。这也取决于Logic项目。

如果您的CLI项目非常小,您可以将其与Logic项目合并。