---
title: "Overview"
description: "Every output format on one table, and the sample run that every format page shows"
url: "https://docs.justcat.it/reference/outputs/overview/"
---
# Overview


| Format | Best for | Written | Linux |
|---|---|---|---|
| [JSON](https://docs.justcat.it/reference/outputs/json/ "JSON") — `json` | scripts and further automation in any language | after the run | yes |
| [YAML](https://docs.justcat.it/reference/outputs/yaml/ "YAML") — `yaml` | the same data as JSON, easier to read by eye | after the run | yes |
| [XLSX](https://docs.justcat.it/reference/outputs/xlsx/ "XLSX") — `xlsx` | sharing results with people; the one format every plan writes | after the run | needs `libgdiplus` |
| [JUnit](https://docs.justcat.it/reference/outputs/junit/ "JUnit") — `junit` | test reports in Azure DevOps, GitLab, GitHub Actions, Jenkins | after the run | yes |
| [TRX](https://docs.justcat.it/reference/outputs/trx/ "TRX") — `trx` | test reports in Azure DevOps and Visual Studio | after the run | yes |
| [SQL Server](https://docs.justcat.it/reference/outputs/sqlserver/ "SQL Server") · [PostgreSQL](https://docs.justcat.it/reference/outputs/postgres/ "PostgreSQL") · [Oracle](https://docs.justcat.it/reference/outputs/oracle/ "Oracle") | history and reporting on top of results | one row per test, as it finishes | yes · yes · untested |

The format token in the second column is what the `Output` setting takes — `Output: json, junit`. See [Settings](https://docs.justcat.it/reference/outputs/settings/ "Settings").

## The sample run

Every format page shows the same run, so the formats can be compared side by side: three tests against one SQL Server data source, with one result of each kind.


**Properties**


**Data sources**


Name
: DWH

Provider
: SqlServer@2

Connection string
: %DWH_CONNECTION_STRING%




**Tests**


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





Name
: No booking without a passenger

Suite
: Data quality

Description
: A booking must reference an existing passenger.

Data source
: DWH

Query
: SELECT 'BK-1001' AS BookingId, 'CSA' AS Airline UNION ALL SELECT 'BK-1002', 'LH'

Expectation
: set is empty





Name
: Flights table is loaded

Suite
: Smoke tests

Data source
: DWH

Query
: SELECT * FROM dbo.Flights

Expectation
: set is not empty





**YAML**


```yaml
Data sources:
- Name: DWH
  Provider: SqlServer@2
  Connection string: "%DWH_CONNECTION_STRING%"

Tests:
- 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

- Name: No booking without a passenger
  Suite: Data quality
  Description: A booking must reference an existing passenger.
  Data source: DWH
  Query: SELECT 'BK-1001' AS BookingId, 'CSA' AS Airline UNION ALL SELECT 'BK-1002', 'LH'
  Expectation: set is empty

- Name: Flights table is loaded
  Suite: Smoke tests
  Data source: DWH
  Query: SELECT * FROM dbo.Flights
  Expectation: set is not empty
```




The first test passes, the second fails (the query returns two rows where none were expected), the third ends with `Error` — there is no `dbo.Flights` table, and the provider says so:

```text
• 00:00:00.0755756 - [Smoke tests].[Airline dimension matches the source] finished with result Passed
• 00:00:00.1389169 - [Data quality].[No booking without a passenger] finished with result Failed
• 00:00:06.2492205 - [Smoke tests].[Flights table is loaded] finished with result Error

😺 passed: 1     😿 failed: 1     🙀 error: 1     🐱 inconclusive: 0
```

The failed test's message — the part every output carries as the *raw message* — reads:

```text
No row was expected, but at least 1 row exists.
MaximumErrorsLogged setting is set to 1. To see more data in the error message, set it to value between 2 and 50.
If the logs should not contain any data, set MaximumErrorsLogged to 0.

┌──────────┬────────┐
│BookingId │Airline │
╞══════════╪════════╡
│BK-1001   │CSA     │
└──────────┴────────┘

CAT did NOT scan the entire set. There may be additional rows.
```

and the error's: `Error when executing the test: Invalid object name 'dbo.Flights'.` The full *message* of each result adds the description, the data sources and the queries under it. See [Failure message](https://docs.justcat.it/reference/tests/failure-message/ "Failure message").

