我有一个java项目,我正在尝试做TDD。
我的问题是当我要改变一个类的API时,我编辑它的测试,然后是类本身。但是可能有很多其他类使用我编辑的第一个类。
所以我想编译这个类及其依赖。然后在如此极小的环境中运行测试。
以下是一个例子。 我的项目结构原型:
.
|_ build.xml
|_ lib/
| |_ *.jar
|_ src/
| |_ myPackage/
| |_ ClassA.java
| |_ ClassB.java
| |_ ClassC.java
|_ test/
|_ myPackage/
|_ ClassATest.java
|_ ClassBTest.java
ClassA
使用ClassC
。 ClassA.java
:
import myPackage.ClassC;
...
现在ClassA
中的API更改后,我想运行其测试,但没有编译ClassB
。所以我只想编译ClassA
和ClassC
。
我使用Ant进行构建。我在here找到了类似的答案。但在这种情况下,我必须手动指定要编译的类:
<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="classpath">
<include name="src/myPackage/ClassA.java"/>
<include name="src/myPackage/ClassC.java"/>
</javac>
我的目标是:
ant test-ClassA
。ClassA
构建测试时,它也会编译ClassC
。test
目录中的每个测试套件构建测试目标。就我而言,它将是test-ClassA
和test-ClassB
。是否有可能通过Ant实现任何这些目标?或者你对运行测试有更好的建议?
答案 0 :(得分:1)
对ClassA
非破坏进行初步更改 - 例如如果您正在更改方法,请首先使用新名称制作方法的副本,但保留旧方法不变。成功开发并测试更改后,您可以更改ClassA
的用户。