View Source JUnitFormatter (JUnit Formatter v3.4.0)

An ExUnit.Formatter implementation that generates a XML in the format understood by JUnit.

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

  • JUnit - ExUnit
  • Testsuites - :testsuite
  • Testsuite - ExUnit.Case
  • failures = failures
  • skipped = skipped
  • 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, {:skipped, _}}
  • failed = {:state, {:failed, {_, reason, stacktrace}}}
  • reason = reason.message
  • content = Exception.format_stacktrace/1
  • error = {:invalid, module}

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

Summary

Functions

Returns a specification to start this module under a supervisor.

Formats time from nanos to seconds

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

Functions

Returns a specification to start this module under a supervisor.

See Supervisor.

@spec format_time(integer()) :: binary()

Formats time from nanos to seconds

@spec 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")