Ant——从Jar中排除我的JUnit测试类



我的Java项目有两个目录,src/tests/,分别包含生产代码和测试代码。

包结构在每个目录中都有镜像—如果src/具有包a.b.c,则tests/也具有等效的包a.b.c.来自src/tests/的源文件被编译到目录bin/中。由于镜像包结构,包a.b.c的测试类与a.b.c.的生产类混合在一起

我希望Ant目标从bin/中的类构建一个jar,但不包括所有的测试文件。我想通过映射每个文件名tests/a/b/c/D.java ==> bin/a/b/c/D.class并从jar中排除映射的文件名来实现这一点。

类似这样的东西:

<target ...>
    <!-- Build a jar that contains the class files which came from -->
    <!-- source files under src/, but not those which came from -->
    <!-- source files under tests/ -->
    <jar ...>
        <fileset dir="bin">
            <!-- EXCLUDE LOGIC -->
        </fileset>
    </jar>
</target>

最佳解决方案是将src文件编译到compile目标中的bin目录,并将test文件编译到test-compile目标中的testbin目录。在test-compile目标中为<javac>设置类路径,以包括bin目录、JUnit和mocking jar。您需要首先将资源复制到bin目录,以便使用它们并用测试版本覆盖它们。

相关内容

  • 没有找到相关文章

最新更新