Get Help

YAML

The same document as the JSON output, in YAML — the counts and every result — for reading by eye and for tools that prefer YAML.

When to use it

When a person will open the file — to look at a failed test’s message, to diff two runs in a text editor, to keep a readable record next to the project — or when the consuming tool speaks YAML. Multi-line messages come out as readable blocks rather than \n-escaped strings. For automation, JSON has the wider library support; the content is identical.

How to set it

Output: yaml

writes TestResults/cat-test-results-{timestamp}.yaml. With a name of your own:

Output:
- Format: yaml
  File: results/latest.yaml

See Settings. Not available on the Starter and Professional plans (MS Excel only).

What it looks like

The sample run, trimmed the same way as on the JSON page:

executionGuid: 78084065-0bde-4628-b49f-f977c0f803df
startedOn: 2026-08-21T09:06:37.4369592+00:00
finishedOn: 2026-08-21T09:06:44.7333889+00:00
duration: 00:00:07.2964297
results:
- executionGuid: 2ecab40f-fbcd-4d94-a2a0-28b1134f9a5c
  testResult: Passed
  message: >+
    The sets match.


    Description: Every airline in the source must land in the dimension, nothing more.

    First Data Source: DWH

    First Query:


    SELECT 'CSA' AS Code UNION ALL SELECT 'LH' ORDER BY Code


    Second Data Source: DWH

    Second Query:


    SELECT 'CSA' AS Code UNION ALL SELECT 'LH' ORDER BY Code

  rawMessage: The sets match.
  startTime: 2026-08-21T09:06:38.2510955+00:00
  endTime: 2026-08-21T09:06:38.3266711+00:00
  duration: 00:00:00.0755756
  threadNumber: 0
  numberOfErrors:
  exceptionMessage:
  exceptions:
  testDefinition:
    testDefinitionID: aa6f2ccd-6e99-4c0e-8f4d-775c7904a628
    suite: Smoke tests
    name: Airline dimension matches the source
    testFullName: '[Smoke tests].[Airline dimension matches the source]'
    description: Every airline in the source must land in the dimension, nothing more.
    firstDataSource: DWH
    firstQuery: SELECT 'CSA' AS Code UNION ALL SELECT 'LH' ORDER BY Code
    secondDataSource: DWH
    secondQuery: SELECT 'CSA' AS Code UNION ALL SELECT 'LH' ORDER BY Code
    expectation: sets match
    expectationType: SetsMatch
    timeout: 0
    maximumErrorsLogged: 1
    toleranceMode: Absolute
    tags: []
    settings:
      Name: Airline dimension matches the source
      Suite: Smoke tests
      Description: Every airline in the source must land in the dimension, nothing more.
      First data source: DWH
      First query: SELECT 'CSA' AS Code UNION ALL SELECT 'LH' ORDER BY Code
      Second data source: DWH
      Second query: SELECT 'CSA' AS Code UNION ALL SELECT 'LH' ORDER BY Code
      Expectation: sets match
  testDefinitionGuid: aa6f2ccd-6e99-4c0e-8f4d-775c7904a628
  testName: Airline dimension matches the source
  testFullName: '[Smoke tests].[Airline dimension matches the source]'
  testSuite: Smoke tests
  description: Every airline in the source must land in the dimension, nothing more.
  firstDataSource: DWH
  firstQuery: SELECT 'CSA' AS Code UNION ALL SELECT 'LH' ORDER BY Code
  secondDataSource: DWH
  secondQuery: SELECT 'CSA' AS Code UNION ALL SELECT 'LH' ORDER BY Code
  expectation: sets match
- testResult: Failed
  rawMessage: "No row was expected, but at least 1 row exists. …"
- testResult: Error
  exceptionMessage: "Invalid object name 'dbo.Flights'."
passedCount: 1
failedCount: 1
errorCount: 1
inconclusiveCount: 0
totalCount: 3
passRate: 33.3
failedRate: 33.3
errorRate: 33.3
inconclusiveRate: 0

Details

Same document as JSON — see the JSON details for the fields; two differences of the YAML writer: enumerations come out by name (expectationType: SetsMatch, toleranceMode: Absolute) where JSON writes numbers, and an empty value is written as an empty key (numberOfErrors:) where JSON writes null. Messages are written as literal blocks (>+), so the box-drawing table of a failed test reads as on the console.

Anchors. When two results share an identical value the writer may emit a YAML anchor and alias (tags: &o0 []tags: *o0). Every YAML parser resolves them; a reader should not be surprised by them.

UTF-8 with a byte-order mark, like JSON. Written once, after the run.

  • JSON — the same document for programs, with the reading snippets.
  • Properties — what each field holds.