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