gpt4 book ai didi

java - 仅编译特定测试所需的源

转载 作者:太空宇宙 更新时间:2023-11-04 06:47:40 25 4
gpt4 key购买 nike

我有一个java项目,我正在尝试做TDD。

我的问题是,当我要更改一个类的 API 时,我会编辑它的测试,然后编辑类本身。但可能还有很多其他类使用我编辑的第一个类。

所以我只想编译这个类及其依赖项。然后在这样的最小环境中运行测试。

这是一个示例。我的项目结构原型(prototype):

.
|_ build.xml
|_ lib/
| |_ *.jar
|_ src/
| |_ myPackage/
| |_ ClassA.java
| |_ ClassB.java
| |_ ClassC.java
|_ test/
|_ myPackage/
|_ ClassATest.java
|_ ClassBTest.java

ClassA 使用ClassCClassA.java:

import myPackage.ClassC;
...

现在,在 ClassA 中的 API 更改之后,我想运行其测试,但不编译 ClassB。所以我只想编译 ClassAClassC

我正在使用 Ant 进行构建。我在 here 中找到了类似的答案。但在这种情况下,我必须手动指定要编译哪些类:

<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="classpath">
<include name="src/myPackage/ClassA.java"/>
<include name="src/myPackage/ClassC.java"/>
</javac>

我的目标是:

  1. 能够单独运行所有测试。例如。 ant test-A 类
  2. 使 Ant 自动解析依赖关系。这意味着,当我为 ClassA 构建测试时,它也会编译 ClassC
  3. 让 Ant 自动为 test 目录中的每个测试套件构建测试目标。就我而言,它将是 test-ClassAtest-ClassB

使用 Ant 是否有可能实现这些目标?或者您对运行测试有更好的建议吗?

最佳答案

使您对 ClassA 的初始更改不会中断 - 例如如果要更改方法,请首先使用新名称复制该方法,但保持旧方法不变。当您成功开发并测试了更改后,您就可以更改 ClassA 的用户。

关于java - 仅编译特定测试所需的源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23752048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com