JUnit Formatter v1.3.0 JUnitFormatter

  • A ExUnit.Formatter implementation that generates a xml in the format understood by JUnit.

To acomplish this, there are some mappings that are not straight one to one. Therefore, here goes the mapping:

  • JUnit - ExUnit
  • Testsuites - :testsuite
  • Testsuite - %ExUnit.TestCase{}
  • failures = failures
  • skipped = skip
  • errors = invalid
  • time = (sum of all times in seconds rounded down)
  • Testcase - %ExUnit.Test
  • name = :case
  • test = :test
  • content (only if not successful)
  • skipped = {:state, {:skip, _}}
  • failed = {:state, {:failed, {_, reason, stacktrace}}}
  • reason = reason.message
  • contet = Exception.format_stacktrace(stacktrace)
  • error = {:invalid, module}

The report is written to a file in the _build directory.

Summary

Functions

Formats time from nanos to seconds

Helper function to get the full path of the generated report file. It can be passed 2 configurations

  • report_dir: full path of a directory (defaults to Mix.Project.app_path())
  • report_file: name of the generated file (defaults to “test-junit-report.xml”)

Functions

format_time(time)
format_time(integer) :: integer

Formats time from nanos to seconds

get_report_file_path()
get_report_file_path() :: String.t

Helper function to get the full path of the generated report file. It can be passed 2 configurations

  • report_dir: full path of a directory (defaults to Mix.Project.app_path())
  • report_file: name of the generated file (defaults to “test-junit-report.xml”)

Macros

xmlAttribute(args \\ [])
xmlAttribute(record, args)
xmlElement(args \\ [])
xmlElement(record, args)
xmlText(args \\ [])
xmlText(record, args)