# junit – write playbook output to a JUnit file

- Synopsis
- Requirements
- Parameters
- Status

## Synopsis

- This callback writes playbook output to a JUnit formatted XML file.
- Tasks show up in the report as follows: ‘ok’: pass ‘failed’ with ‘EXPECTED FAILURE’ in the task name: pass ‘failed’ with ‘TOGGLE RESULT’ in the task name: pass ‘ok’ with ‘TOGGLE RESULT’ in the task name: failure ‘failed’ due to an exception: error ‘failed’ for other reasons: failure ‘skipped’: skipped

## Requirements

The below requirements are needed on the local master node that executes this callback.

- whitelist in configuration
- junit_xml (python lib)

## Parameters

Parameter | Choices/Defaults | Configuration | Comments
--- | --- | --- | ---
fail_on_change - | Default: "no" | env:JUNIT_FAIL_ON_CHANGE | Consider any tasks reporting "changed" as a junit test failure
fail_on_ignore - | Default: "no" | env:JUNIT_FAIL_ON_IGNORE | Consider failed tasks as a junit test failure even if ignore_on_error is set
hide_task_arguments - added in 2.8 | Default: "no" | env:JUNIT_HIDE_TASK_ARGUMENTS | Hide the arguments for a task
include_setup_tasks_in_report - | Default: "yes" | env:JUNIT_INCLUDE_SETUP_TASKS_IN_REPORT | Should the setup tasks be included in the final report
output_dir - | Default: "~/.ansible.log" | env:JUNIT_OUTPUT_DIR | Directory to write XML files to.
task_class - | Default: "no" | env:JUNIT_TASK_CLASS | Configure the output to be one class per yaml file
task_relative_path - added in 2.8 | Default: "none" | env:JUNIT_TASK_RELATIVE_PATH | Configure the output to use relative paths to given directory
test_case_prefix - added in 2.8 | Default: "\u003cempty\u003e" | env:JUNIT_TEST_CASE_PREFIX | Consider a task only as test case if it has this value as prefix. Additionaly failing tasks are recorded as failed test cases.

## Status

- This callback is not guaranteed to have a backwards compatible interface. [preview]
- This callback is maintained by the Ansible Community. [community]

### Authors

- UNKNOWN

Hint

If you notice any issues in this documentation, you can edit this document to improve it.

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.