仅用于测试的 Eclipse 类路径条目

2022-09-02 21:36:04

在 Maven 中,可以具有编译时依赖项和测试依赖项。这是我喜欢的一个功能,M2Eclipse插件在Eclipse中也提供了此功能,这很棒。因此,如果我作为测试依赖项添加到我的项目中,它将显示在 JUnit 测试的类路径上,但在调试应用程序本身时不会出现。jmock.jar

这正是我现在想要实现的目标,但没有M2Eclipse或Maven。有没有办法在普通的Eclipse中做到这一点?(可能无需安装任何插件。


答案 1

您可以将所有测试分离到另一个项目中,并将主项目添加为依赖项(Project->Properties->Java Build Path->Projects->Add...)

更新:为了避免更改原始项目结构,测试项目可以使用链接的位置。

像往常一样创建测试项目,现在需要创建一个链接资源来引入 src/test/java 文件夹。最好使用变量创建它,以便您的项目可以保留一些平台独立性。要创建新的链接文件夹,请选择“新建>文件夹”,在文件夹名称:字段中输入 src,然后单击“高级>>

单击“链接到文件系统中的文件夹...”单击“变量...”以显示“选择路径变量”对话框。

如果这是您第一次,或者您正在链接到新位置,请选择“新建...”,并为变量指定一个合理的名称和路径。如果所有项目都位于 c:\workspaces\foo** 中,则调用变量 **WORKSPACE_ROOT 并为其指定该路径是有意义的。如果您有其他约定,那很好,但是在.project文件中放置注释是有意义的,这样有人就有机会弄清楚正确的值应该是什么。

假设上述值,您现在可以在输入字段上设置WORKSPACE_ROOT/[主题项目名称]/src 的值

一旦你确认你应该看到一个小箭头的src文件夹,如果你查看.project文件,看到如下内容:

<linkedResources>
    <link>
        <name>src</name>
        <type>2</type>
        <locationURI>WORKSPACE_ROOT/esf-ns-core-rp/src</locationURI>
    </link><!--NOTE the WORKSPACE_ROOT variable points to the folder containing the subject project's sandbox-->
</linkedResources>

现在,您可以像往常一样将 src/test/java 文件夹添加为源位置。

请注意,您还可以通过将配置更改为如下所示来仅共享 src/test/java 文件夹:

<linkedResources>
    <link>
        <name>src/test/java</name>
        <type>2</type>
        <locationURI>WORKSPACE_ROOT/my-project/src/test/java</locationURI>
    </link>
</linkedResources>

这样可以更好地控制配置,但是您必须对src /test/resources,src/ it / java等重复此操作。

然后,仅在测试项目中设置所有测试依赖项。

非常不漂亮,但它确实有效(我也使用过这个,我的测试合规性级别与主要合规性级别不同,例如,测试为1.5,但目标环境为1.4)。


答案 2

恐怕答案是你不能。有 2 个未解决的问题从 3.5 中推迟,与您的问题相关:


推荐