Проблема, с которой вы сталкиваетесь, заключается в том, что с использованием WithCriteria
перегрузка, с которой вы используете критерии, оценивается до выполнения задачи.
В целом это нормально с константами/состояниями, созданными до выполнения задачи.
С WithCriteria
имеет два перегружает one, которые вы используете выше
public static CakeTaskBuilder<T> WithCriteria(
this CakeTaskBuilder<T> builder,
bool criteria
)
Как это занимает bool
это оцененное как созданные задачи, которые не будет работать, если состояние создается & изменено во время установки или предыдущей задачи, для решения этого изменения вы код, чтобы использовать перегрузку below
public static CakeTaskBuilder<T> WithCriteria(
this CakeTaskBuilder<T> builder,
Func<bool> criteria
)
Это перенагрузки принимает Func<bool>
критерии Wh ich оценивается непосредственно перед выполнением задачи, таким образом, имеет доступ к любому состоянию, созданному или измененному до выполнения задачи.
Так что исправление для вашего вопроса, это просто добавить ()=>
перед вашими критериями, и это будет ленивым загружены так:
Task("Test-NUnit")
.WithCriteria(()=>DirectoryExists(parameters.Paths.Directories.NUnitTestResults))
.Does(()=>
{
});
Спасибо, работает точно так же, как описано! –