Я пишу пользовательскую задачу муравья, которая расширяет задачу. Я использую метод 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();
Когда код запускается как тест, он выдает исключение 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)
Кто-нибудь знает способ предоставить контекст или заглушки или что-то похожее на задачу?
Спасибо
Rob.
Принят ответ от Абаракса. Я был в состоянии вызвать task.setProject (новый проект ());
Теперь код выполняется нормально (за исключением того, что в консоли не отображается логирование - по крайней мере, я могу использовать код :-)).