Add comprehensive golden fixture tests for if feature:
- Command-level if (true/false)
- Task-level if (true/false)
- Task calls with if conditions
- Go template functions (eq, ne, and, or)
- Direct template variable evaluation
- CLI variable overrides
- For loops with if conditions
Previously if a task was run as a dependency of another task,
the error message simply reported something like:
exit status 1
It is desirable instead to name the root task and all child tasks in the tree
to the failing task.
After this PR, the error message will read:
task: Failed to run task "root": task: Failed to run task "failing-task": exit status 1
* feat: use TaskTest for executor tests
* feat: more tests
* feat: separate tests for executing and formatting with new functional options that work for both test types
* feat: formatter tests
* refactor: more tests