我应该将我的单元测试文件夹添加到Eclipse中的java构建路径吗?

时间:2013-02-06 13:55:47

标签: java eclipse junit eclipse-plugin eclipse-pde

我们正在开发一个由多个插件组成的Eclipse产品,其中一些是由我们开发的。我们的每个插件都被定义为工作区中的Eclipse插件项目,并有两个文件夹,source和test。最近我注意到我们正在向用户提供测试类,就像我们的源类一样。现在我想从我们产品的结果中删除测试类。我应该从Java构建路径中删除测试文件夹(参见附件)?我还应该做些什么来不将我们的测试部署到最终用户?

enter image description here

要构建项目,我们使用eclipse标准ant脚本来创建我们的zip文件。我找不到在哪里可以排除测试文件。这是Ant脚本:

<property name="allElementsFile" value="${eclipse.pdebuild.scripts}/productBuild/allElements.xml"/>
<import file="${eclipse.pdebuild.scripts}/build.xml"/>
<property name="pluginPath" value=""/>
<property name="pluginList" value=""/>
<property name="featureList" value=""/>
<property name="includeLaunchers" value="true"/>
<property name="generatedBuildProperties" value=""/>
<condition property="nestedInclusions" value="true">
    <istrue value="${p2.gathering}" />
</condition>

<!-- ===================================================================== -->
<!-- main entry point to setup, fetch, generate, build etc. Use -->
<!-- the customTargets.xml to modify the build behaviour. -->
<!-- ===================================================================== -->
<target name="main" description="the main build target">    
    <antcall target="preBuild" />
    <antcall target="processRepos"/>
    <antcall target="generateFeature"> <!-- Generate the feature to drive the fetch -->
        <param name="verify" value="false"/>
    </antcall>
    <antcall target="fetch" />
    <antcall target="generateFeature"> <!-- We are calling generate feature a second time so that we can get the pack / unpack clause fixed -->
        <param name="verify" value="true"/>
    </antcall> 
    <antcall target="generate" /> 
    <antcall target="process" /> 
    <antcall target="assemble" />
    <antcall target="package" />
    <antcall target="postBuild" />
</target>

<!-- ===================================================================== -->
<!-- Generate a container feature based on the product file                -->
<!-- The plugin or feature containing the .product file will need to exist -->
<!-- already, use preSetup or postSetup to fetch it if necessary           -->
<!-- ===================================================================== -->
<target name="generateFeature">
    <eclipse.generateFeature
        featureId="org.eclipse.pde.build.container.feature"
        buildDirectory="${buildDirectory}"
        baseLocation="${baseLocation}"
        productFile="${product}"
        verify="${verify}"
        pluginPath="${transformedRepoLocation}${path.separator}${pluginPath}"
        configInfo="${configs}"
        pluginList="${pluginList}"
        featureList="${featureList}"
        includeLaunchers="${includeLaunchers}"
        buildPropertiesFile="${generatedBuildProperties}"
        nestedInclusions="${nestedInclusions}"
        filterP2Base="${filterP2Base}"
    />
</target>


</project>

2 个答案:

答案 0 :(得分:1)

这是您的部署过程/脚本的问题。你在用Eclipse构建jar吗? 它不应该与构建路径有关,如果使用Eclipse对它们进行编码,则应将测试源保留在构建路径中。 通常,使用Ant或Maven的部署过程将从结果中排除测试类(jar,war,...)。建议在创建jar之前自动运行测试。

答案 1 :(得分:0)

要在使用pde ant脚本构建pde项目时从代码中删除测试文件(如果为每个插件项目定义源文件夹和测试文件夹),则应从该项目的build.properties中删除测试文件夹。 build.properties是plugin.xml的一部分