我正在编写一个扩展 Task 的自定义 ant 任务。我在任务中使用 log() 方法。我想要做的是在开发任务时使用单元测试,但我不知道如何为要运行的任务设置上下文来初始化任务,就好像它在 ant 中运行一样。
这是自定义任务:
public class CopyAndSetPropertiesForFiles extends Task {
public void execute() throws BuildException {
log("CopyAndSetPropertiesForFiles begin execute()");
log("CopyAndSetPropertiesForFiles end execute()");
}
}
这是单元测试代码:
CopyAndSetPropertiesForFiles task = new CopyAndSetPropertiesForFiles();
task.execute();
当代码作为测试运行时,它会在调用 log 时给出 NullPointerException。
java.lang.NullPointerException
at org.apache.tools.ant.Task.log(Task.java:346)
at org.apache.tools.ant.Task.log(Task.java:334)
at uk.co.tbp.ant.custom.CopyAndSetPropertiesForFiles.execute(CopyAndSetPropertiesForFiles.java:40)
at uk.co.tbp.ant.custom.test.TestCopyAndSetPropertiesForFiles.testCopyAndSetPropertiesForFiles(TestCopyAndSetPropertiesForFiles.java:22)
有人知道提供上下文或存根或类似于任务的东西的方法吗?
谢谢,
抢。
接受 Abarax 的回答。我能够调用 task.setProject(new Project()); 代码现在执行正常(除了控制台中没有出现日志记录 - 至少我可以练习代码:-))。