# CAT documentation > Framework for creating automated tests for your DATA. Super easy to start with, you can create your first test in 5 minutes. Every page below is also available as markdown: append `index.md` to the page URL. ## Get started - [Get Started](https://docs.justcat.it/get-started/index.md) - [CAT CLI](https://docs.justcat.it/get-started/cat-cli/index.md) - [Explore sample project](https://docs.justcat.it/get-started/cat-cli/explore/index.md) - [Create first test](https://docs.justcat.it/get-started/cat-cli/first-test/index.md) - [Install CAT CLI](https://docs.justcat.it/get-started/cat-cli/install/index.md) - [What is CAT CLI?](https://docs.justcat.it/get-started/cat-cli/what-is-cat-cli/index.md): What is CAT CLI? - [Why to follow this tutorial?](https://docs.justcat.it/get-started/cat-cli/why-to-follow-this-tutorial/index.md): What I get when I follow this tutorial? What do I need to follow it? - [CAT Studio](https://docs.justcat.it/get-started/cat-studio/index.md) - [Explore sample project](https://docs.justcat.it/get-started/cat-studio/explore/index.md) - [Create first test](https://docs.justcat.it/get-started/cat-studio/first-test/index.md): Automate your first CAT Studio test against your own data. - [Install CAT studio](https://docs.justcat.it/get-started/cat-studio/install/index.md): OK, CAT seems cool. What do I do to start using it? - [What is CAT studio?](https://docs.justcat.it/get-started/cat-studio/what-is-cat-studio/index.md): What is CAT Studio? - [Why to follow this tutorial?](https://docs.justcat.it/get-started/cat-studio/why-to-follow-this-tutorial/index.md): What I get when I follow this tutorial? What do I need to follow it? - [How to get started?](https://docs.justcat.it/get-started/introduction/index.md): Pick the CAT tool you want to start with — CAT Studio, the PowerShell module, CAT CLI or the Python module. - [CAT PowerShell module](https://docs.justcat.it/get-started/powershell-module/index.md) - [Explore sample project](https://docs.justcat.it/get-started/powershell-module/explore/index.md) - [Create first test](https://docs.justcat.it/get-started/powershell-module/first-test/index.md) - [Install PowerShell module](https://docs.justcat.it/get-started/powershell-module/install/index.md) - [What is CAT PowerShell module?](https://docs.justcat.it/get-started/powershell-module/what-is-powershell-module/index.md): What is CAT PowerShell module? - [Why to follow this tutorial?](https://docs.justcat.it/get-started/powershell-module/why-to-follow-this-tutorial/index.md): What I get when I follow this tutorial? What do I need to follow it? - [CAT Python module](https://docs.justcat.it/get-started/python-module/index.md) - [Explore sample project](https://docs.justcat.it/get-started/python-module/explore/index.md) - [Create first test](https://docs.justcat.it/get-started/python-module/first-test/index.md) - [Install Python package](https://docs.justcat.it/get-started/python-module/install/index.md) - [What is CAT Python module?](https://docs.justcat.it/get-started/python-module/what-is-python-module/index.md): What is CAT Python module? - [Why to follow this tutorial?](https://docs.justcat.it/get-started/python-module/why-to-follow-this-tutorial/index.md): What I get when I follow this tutorial? What do I need to follow it? - [What next?](https://docs.justcat.it/get-started/what-next/index.md) ## What is CAT - [What is CAT](https://docs.justcat.it/what-is-cat/index.md) - [CAT in your infrastructure](https://docs.justcat.it/what-is-cat/cat-in-my-infrastracture/index.md): How CAT fits into my infrastructure? - [Test examples](https://docs.justcat.it/what-is-cat/cat-test-examples/index.md) - [CAT use-cases](https://docs.justcat.it/what-is-cat/cat-use-cases/index.md): When do you need CAT? - [Introduction](https://docs.justcat.it/what-is-cat/introduction/index.md): What is CAT and when do I need it? - [Need more info?](https://docs.justcat.it/what-is-cat/need-more-info/index.md) ## How-to guides - [How-to guides](https://docs.justcat.it/how-to-guides/index.md): Recipes for accomplishing a specific goal with CAT - [Data platforms](https://docs.justcat.it/how-to-guides/data-platforms/index.md): Testing Power BI, Databricks, Microsoft Fabric, Dataverse, CSV and Excel data with CAT — what to connect to, how, and which tests pay off - [CAT in Databricks notebooks](https://docs.justcat.it/how-to-guides/data-platforms/cat-in-databricks-notebooks/index.md): Running CAT tests from a Databricks notebook with the Python module — when it makes sense, and how to set the cluster up. - [Power BI](https://docs.justcat.it/how-to-guides/data-platforms/power-bi/index.md): Test Power BI Desktop files, semantic models in workspaces and measures — and get the DAX queries to do it - [Get the DAX query behind a visual](https://docs.justcat.it/how-to-guides/data-platforms/power-bi/get-the-dax-query-behind-a-visual/index.md): Three ways to get a DAX query without writing it — Performance Analyzer copies the query of any visual, DAX query view's Quick queries, DAX Studio's query builder - [DAX for SQL people](https://docs.justcat.it/how-to-guides/data-platforms/power-bi/sql-to-dax/index.md): The DAX you need for tests, explained side by side with the SQL you already know — EVALUATE, filters, grouping, measures, sorting - [Test a Power BI Desktop file](https://docs.justcat.it/how-to-guides/data-platforms/power-bi/test-a-power-bi-desktop-file/index.md): Test the model in a .pbix or .pbip file open in Power BI Desktop — the file name is the connection; no driver, no service principal - [Test a semantic model in a workspace](https://docs.justcat.it/how-to-guides/data-platforms/power-bi/test-a-semantic-model-in-a-workspace/index.md): Test a semantic model published to a Power BI or Microsoft Fabric workspace — XMLA endpoint, service principal, the connection string; Azure and SQL Server Analysis Services the same way - [Test measures](https://docs.justcat.it/how-to-guides/data-platforms/power-bi/test-measures/index.md): Worked examples for testing Power BI measures — a total against the warehouse, a measure per year with a tolerance, a measure that must not be blank, a number against the value the business expects - [Test Power BI](https://docs.justcat.it/how-to-guides/data-platforms/power-bi/test-power-bi/index.md): What CAT can test in Power BI — a file open in Power BI Desktop, a semantic model in a workspace — how to set it up, and which tests pay off - [Query CSV and Excel data with DuckDB SQL](https://docs.justcat.it/how-to-guides/data-platforms/query-csv-and-excel-with-duckdb-sql/index.md): What SQL you can write against CSV files and Excel workbooks loaded by Csv@2 and Excel@2 — SELECT, joins and set operations, expressions, functions, by example - [Test CSV and Excel files](https://docs.justcat.it/how-to-guides/data-platforms/test-csv-and-excel-files/index.md): Test data in CSV files and Excel workbooks — the file delivered by a partner, the budget the business maintains, the expected results of a test — with full SQL, and compare them with the database they should match - [Test Databricks](https://docs.justcat.it/how-to-guides/data-platforms/test-databricks/index.md): Test data in Databricks — all-purpose clusters, SQL warehouses, serverless — through the Simba ODBC driver: driver, token, connection string, first test, tests generated from Unity Catalog - [Test Dataverse](https://docs.justcat.it/how-to-guides/data-platforms/test-dataverse/index.md): Test Dynamics 365 and Power Apps data in Dataverse through its TDS (SQL) endpoint — enabling the endpoint, Entra ID authentication, what the SQL can and cannot do - [Test Microsoft Fabric](https://docs.justcat.it/how-to-guides/data-platforms/test-microsoft-fabric/index.md): Test data in Microsoft Fabric — warehouses and lakehouses through their SQL endpoint, semantic models through the XMLA endpoint — and the tests across the layers that pay off - [Licensing and admin](https://docs.justcat.it/how-to-guides/licensing-and-admin/index.md): Plans, trials and buying; applying a license key; managing CAT on many machines; Linux; troubleshooting - [Apply a license key](https://docs.justcat.it/how-to-guides/licensing-and-admin/apply-license-key/index.md): Set the Enterprise license key in CAT Studio, CAT CLI, the PowerShell module and the Python module — where it is stored, how to check it, what it is not - [Run CAT on Linux](https://docs.justcat.it/how-to-guides/licensing-and-admin/cat-on-linux/index.md): Run CAT on Linux — CAT CLI as a single executable, or the PowerShell module under PowerShell 7: install, use, what works and what does not - [Get a CAT license](https://docs.justcat.it/how-to-guides/licensing-and-admin/get-license/index.md): The four plans, the free trial of each, how to buy — Professional and Team as a subscription, Enterprise with a license key — and what happens when a plan ends - [Manage CAT Pilot with Group Policy](https://docs.justcat.it/how-to-guides/licensing-and-admin/manage-cat-pilot/index.md): How administrators disable or restrict CAT Pilot across managed machines - [Troubleshoot CAT](https://docs.justcat.it/how-to-guides/licensing-and-admin/troubleshooting/index.md): What went wrong and where to find out — the log of each tool, how to turn it up, and the symptoms that have one usual cause - [Organize and run tests](https://docs.justcat.it/how-to-guides/organize-and-run-tests/index.md): Create a project file, keep a growing test base in order, keep secrets out of it, and run the tests - [Generate tests from metadata](https://docs.justcat.it/how-to-guides/organize-and-run-tests/generate-tests-from-metadata/index.md): Turn one working test into one test per table, customer or contract - [Create a project file](https://docs.justcat.it/how-to-guides/organize-and-run-tests/how-to-create-project-file/index.md): Create a project file with any CAT tool — from a template, or in CAT Studio — and see what is in it - [Organize a growing test base](https://docs.justcat.it/how-to-guides/organize-and-run-tests/organize-test-definitions/index.md): Where to keep test and data source definitions as a project grows — several files, a database, a workbook — and what that means for CAT Studio - [Run tests in parallel](https://docs.justcat.it/how-to-guides/organize-and-run-tests/run-tests-in-parallel/index.md): When to raise the degree of parallelism, how far, and where the Threads setting goes - [Run your tests](https://docs.justcat.it/how-to-guides/organize-and-run-tests/run-your-tests/index.md): Run everything in a project file, or only the part you care about right now — with any CAT tool - [Store definitions in a database](https://docs.justcat.it/how-to-guides/organize-and-run-tests/store-definitions-in-a-database/index.md): Keep test, data source and query definitions in database tables — which tables you need, the scripts per platform, and how to point the project file at them - [Use environment variables](https://docs.justcat.it/how-to-guides/organize-and-run-tests/use-environment-variables/index.md): Define an environment variable, refer to it from a project file, and make sure CAT sees it — on Windows and Linux, on a laptop and in a pipeline - [Work with secrets](https://docs.justcat.it/how-to-guides/organize-and-run-tests/work-with-secrets/index.md): Keep passwords, tokens and connection strings out of the project file — environment variables, integrated authentication, Microsoft Entra ID - [Pipelines and schedulers](https://docs.justcat.it/how-to-guides/pipelines-and-schedulers/index.md): Running CAT unattended — CI/CD platforms and schedulers, step by step - [CAT in Azure DevOps Classic Releases](https://docs.justcat.it/how-to-guides/pipelines-and-schedulers/ados-classic-releases/index.md): How to use CAT in Azure DevOps Classic Releases. - [CAT in Azure DevOps Pipelines](https://docs.justcat.it/how-to-guides/pipelines-and-schedulers/cat-in-azure-devops-pipelines/index.md): Run CAT tests in an Azure DevOps YAML pipeline and publish the results to the Tests tab - [CAT in cron](https://docs.justcat.it/how-to-guides/pipelines-and-schedulers/cat-in-cron/index.md): Run a CAT test project on a schedule on Linux with cron — the PowerShell module under pwsh, the crontab line, the environment cron does not give you - [CAT in GitHub Actions](https://docs.justcat.it/how-to-guides/pipelines-and-schedulers/cat-in-github-actions/index.md): Run CAT tests in a GitHub Actions workflow and publish the results as a check - [CAT in GitLab](https://docs.justcat.it/how-to-guides/pipelines-and-schedulers/cat-in-gitlab/index.md): Run CAT tests in a GitLab CI/CD pipeline and show them on the pipeline's Tests tab - [CAT in Jenkins](https://docs.justcat.it/how-to-guides/pipelines-and-schedulers/cat-in-jenkins/index.md): Run CAT tests in a Jenkins pipeline and show them with the JUnit plugin - [CAT in Windows Task Scheduler](https://docs.justcat.it/how-to-guides/pipelines-and-schedulers/cat-in-windows-task-scheduler/index.md): Run a CAT test project on a schedule with Windows Task Scheduler — the task, the account, the key, the variables, where the results go - [CAT in SQL Server Agent](https://docs.justcat.it/how-to-guides/pipelines-and-schedulers/sql-agent-cat-cli/index.md): Run CAT tests as a SQL Server Agent job step — between the steps of a load, or on the agent's schedule — with CAT CLI or the PowerShell module - [Test patterns](https://docs.justcat.it/how-to-guides/test-patterns/index.md): What to test and how — which expectation when, finding problems with set is empty, smoke tests, comparing data across systems, incremental loads - [Compare data across systems](https://docs.justcat.it/how-to-guides/test-patterns/compare-data-across-systems/index.md): Prove that two systems hold the same data — counts, counts by period or key, the IDs, the full rows — with sets match and contains: key, order, tolerance, what the failure message tells you, and how to keep it cheap on big volumes - [Differences between systems](https://docs.justcat.it/how-to-guides/test-patterns/differences-between-systems/index.md): Why equal data looks different across systems — types, decimals, dates and time zones, NULL vs empty, spaces, case, booleans, text keys — and how to neutralize each in the query - [Find problems with set is empty](https://docs.justcat.it/how-to-guides/test-patterns/find-problems-with-set-is-empty/index.md): The workhorse expectation — write the rule as 'find the violations', get the offending rows in the failure message; the settings that control how many, the cost, and the tricks - [My expectation does not exist](https://docs.justcat.it/how-to-guides/test-patterns/my-expectation-does-not-exist/index.md): There is no 'count between 10 and 20' expectation — and there does not need to be: put the condition into the query and expect set is empty. The generic principle, with examples and CAT Pilot - [Smoke tests with set is not empty](https://docs.justcat.it/how-to-guides/test-patterns/smoke-tests-with-set-is-not-empty/index.md): The cheapest test there is — there is data where data should be — per table, per partition, per day; and how metadata-driven templates give every new table its smoke test for free - [Test compliance rules](https://docs.justcat.it/how-to-guides/test-patterns/test-compliance-rules/index.md): GDPR and other compliance as tests — masked values for flagged customers, the right to be forgotten across every table, retention, consent, no personal data where none belongs — with set is empty, contains and templates - [Test incremental loads](https://docs.justcat.it/how-to-guides/test-patterns/test-incremental-loads/index.md): Why incremental loads are worth testing, how they go wrong — late rows, missed updates, deletes, time zones, re-runs — and three levels of test: detect, detailed, balanced; contains for permanent staging; thresholds for systems that never stand still - [Test schemas and metadata](https://docs.justcat.it/how-to-guides/test-patterns/test-schemas-and-metadata/index.md): Compare the design — the CSV or Excel sheet the solution was built from — with what really exists in INFORMATION_SCHEMA or Unity Catalog; mandatory columns per layer from one template; naming and type rules - [Which expectation when](https://docs.justcat.it/how-to-guides/test-patterns/which-expectation-when/index.md): The five expectations and the question each one answers — one page to decide, with an example of each as you would fill it in CAT Studio and as YAML ## Reference - [Reference](https://docs.justcat.it/reference/index.md): The complete technical reference for every CAT tool, concept and integration - [Basics](https://docs.justcat.it/reference/basics/index.md): Orientation — the CAT mental model - [CAT Tools](https://docs.justcat.it/reference/basics/cat-tools/index.md): The four CAT tools and what each of them is good for - [How CAT works](https://docs.justcat.it/reference/basics/how-cat-works/index.md): Project file, tools, and how tests are executed - [Introduction](https://docs.justcat.it/reference/basics/introduction/index.md): What CAT is about and the basic terms - [CAT CLI](https://docs.justcat.it/reference/cat-cli/index.md): CAT CLI — the command-line tool of CAT: conventions, installation, and one page per verb. - [docs](https://docs.justcat.it/reference/cat-cli/docs/index.md): catcli docs — open this documentation in the default browser. - [exec](https://docs.justcat.it/reference/cat-cli/exec/index.md): catcli exec — run one command against a data source of the project and print the result. - [Installation](https://docs.justcat.it/reference/cat-cli/installation/index.md): Where to get CAT CLI on Windows, Linux and macOS, how to update it and how to remove it - [instance](https://docs.justcat.it/reference/cat-cli/instance/index.md): catcli instance — show this CAT installation, or set and remove the license key. - [Introduction](https://docs.justcat.it/reference/cat-cli/introduction/index.md): How CAT CLI is invoked: verbs, options, project resolution, logging, sign-in and plans, exit codes, environment variables and files. - [new](https://docs.justcat.it/reference/cat-cli/new/index.md): catcli new — create a project from a template, or list the templates. - [open](https://docs.justcat.it/reference/cat-cli/open/index.md): catcli open — open a project for an interactive session: run, rerun, step through failed tests. - [run](https://docs.justcat.it/reference/cat-cli/run/index.md): catcli run — run the tests of a project and print the results. - [show](https://docs.justcat.it/reference/cat-cli/show/index.md): catcli show — print the summary or the test list of a project without running it. - [CAT Portal](https://docs.justcat.it/reference/cat-portal/index.md): What is CAT Portal and do I need it? - [CAT Studio](https://docs.justcat.it/reference/cat-studio/index.md): CAT Studio reference; gains its own installation pages - [CAT Pilot](https://docs.justcat.it/reference/cat-studio/cat-pilot/index.md): CAT Pilot - how to use AI in CAT Studio - [Data Sources](https://docs.justcat.it/reference/cat-studio/data-sources/index.md): Configuring data source connections in CAT Studio - [Installation](https://docs.justcat.it/reference/cat-studio/installation/index.md): How to get and install CAT Studio - [CAT Studio Interface](https://docs.justcat.it/reference/cat-studio/interface/index.md): Overview of CAT Studio interface and navigation - [Introduction](https://docs.justcat.it/reference/cat-studio/introduction/index.md): CAT Studio introduction - [Keyboard Shortcuts](https://docs.justcat.it/reference/cat-studio/keyboard-shortcuts/index.md): CAT Studio keyboard shortcuts list. - [Project](https://docs.justcat.it/reference/cat-studio/project/index.md): Working with CAT project files in CAT Studio - [Queries](https://docs.justcat.it/reference/cat-studio/queries/index.md): Running ad-hoc queries in CAT Studio - [Settings](https://docs.justcat.it/reference/cat-studio/settings/index.md): CAT Studio settings. - [Tests](https://docs.justcat.it/reference/cat-studio/tests/index.md): Creating and managing automated tests in CAT Studio - [Variables](https://docs.justcat.it/reference/cat-studio/variables/index.md): You can use and manage environment variables in CAT Studio. - [Data sources](https://docs.justcat.it/reference/data-sources/index.md): Data source definitions, wherever they are stored - [Properties](https://docs.justcat.it/reference/data-sources/properties/index.md): All data source properties — keys in YAML, columns in tabular sources - [Providers](https://docs.justcat.it/reference/data-sources/providers/index.md): One page per provider — what it connects to, its connection string, settings, query language and prerequisites - [ClickHouse@1](https://docs.justcat.it/reference/data-sources/providers/clickhouse-1/index.md): ClickHouse@1 — ClickHouse server over its HTTP interface, no driver needed - [Csv@1](https://docs.justcat.it/reference/data-sources/providers/csv-1/index.md): Csv@1 — CSV files in a directory, simple filtering, no driver needed - [Csv@2](https://docs.justcat.it/reference/data-sources/providers/csv-2/index.md): Csv@2 — CSV files loaded into an in-memory DuckDB database, full SQL, no driver needed - [CsvOleDB@1](https://docs.justcat.it/reference/data-sources/providers/csvoledb-1/index.md): CsvOleDB@1 — legacy: CSV files through the Microsoft ACE OLE DB driver, basic SQL, Windows only - [Dax@1](https://docs.justcat.it/reference/data-sources/providers/dax-1/index.md): Dax@1 (legacy) — tabular models in Power BI and SQL Server Analysis Services, queried in DAX through the MSOLAP OLE DB driver - [Dax@2](https://docs.justcat.it/reference/data-sources/providers/dax-2/index.md): Dax@2 — Power BI, MS Fabric and Azure Analysis Services semantic models and SSAS tabular and multidimensional models, queried in DAX or MDX, no driver needed - [Excel@1](https://docs.justcat.it/reference/data-sources/providers/excel-1/index.md): Excel@1 — one worksheet of an xlsx workbook, simple filtering, strike-through rows skipped, no driver needed - [Excel@2](https://docs.justcat.it/reference/data-sources/providers/excel-2/index.md): Excel@2 — xlsx workbooks loaded into an in-memory DuckDB database, full SQL, no driver needed - [ExcelOleDB@1](https://docs.justcat.it/reference/data-sources/providers/exceloledb-1/index.md): ExcelOleDB@1 — legacy: xlsx workbooks through the Microsoft ACE OLE DB driver, basic SQL, Windows only - [Introduction](https://docs.justcat.it/reference/data-sources/providers/introduction/index.md): What is a Provider in CAT? Why do I need to know? - [MySql@1](https://docs.justcat.it/reference/data-sources/providers/mysql-1/index.md): MySql@1 — MySQL, MariaDB and MySQL-compatible databases over MySqlConnector, no driver needed - [Odbc@1](https://docs.justcat.it/reference/data-sources/providers/odbc-1/index.md): Odbc@1 — any ODBC source through its own ODBC driver; Databricks for one - [Oracle@1](https://docs.justcat.it/reference/data-sources/providers/oracle-1/index.md): Oracle@1 — ORACLE databases over Oracle.ManagedDataAccess, no driver needed - [Overview](https://docs.justcat.it/reference/data-sources/providers/overview/index.md) - [Postgres@1](https://docs.justcat.it/reference/data-sources/providers/postgres-1/index.md): Postgres@1 — PostgreSQL and PostgreSQL-compatible databases, no driver needed - [PowerBI@1](https://docs.justcat.it/reference/data-sources/providers/powerbi-1/index.md): PowerBI@1 (legacy) — a Power BI Desktop file open on the same machine, queried in DAX through the MSOLAP driver - [PowerBI@2](https://docs.justcat.it/reference/data-sources/providers/powerbi-2/index.md): PowerBI@2 — a Power BI Desktop file open on the same machine, queried in DAX, no driver needed - [Snowflake@1](https://docs.justcat.it/reference/data-sources/providers/snowflake-1/index.md): Snowflake@1 — Snowflake databases through the Snowflake connector for .NET, no driver needed - [SqlServer@1](https://docs.justcat.it/reference/data-sources/providers/sqlserver-1/index.md): SqlServer@1 — legacy MS SQL Server provider on System.Data.SqlClient; use SqlServer@2 instead - [SqlServer@2](https://docs.justcat.it/reference/data-sources/providers/sqlserver-2/index.md): SqlServer@2 — MS SQL Server, Azure SQL, Synapse Analytics, MS Fabric and Dataverse over Microsoft.Data.SqlClient, no driver needed - [Teradata@1](https://docs.justcat.it/reference/data-sources/providers/teradata-1/index.md): Teradata@1 — Teradata databases over Teradata.Client.Provider, no driver needed - [Yaml@1](https://docs.justcat.it/reference/data-sources/providers/yaml-1/index.md): Yaml@1 — data in YAML files, and the provider behind every definition in the project file itself - [Technologies](https://docs.justcat.it/reference/data-sources/technologies/index.md): Technology names what a data source is; the provider names how CAT connects to it. Full list of what CAT can test. - [Integrations](https://docs.justcat.it/reference/integrations/index.md): What a CI/CD platform or a scheduler needs to run CAT — plan, license key, tool, secrets, results, exit codes — and where the platform guides are - [Outputs](https://docs.justcat.it/reference/outputs/index.md): Where the results of a run go — files in five formats, or tables in a database - [Database outputs](https://docs.justcat.it/reference/outputs/database-outputs/index.md): Writing results into a table or through a procedure — what the three database outputs share - [Introduction](https://docs.justcat.it/reference/outputs/introduction/index.md): What an output is, when it is written, and which plans write which - [JSON](https://docs.justcat.it/reference/outputs/json/index.md): The whole run as one JSON document — counts, and every result with its message, timing and definition - [JUnit](https://docs.justcat.it/reference/outputs/junit/index.md): The run as a JUnit XML report — the format Azure DevOps, GitLab, GitHub Actions and Jenkins turn into a test report - [Oracle](https://docs.justcat.it/reference/outputs/oracle/index.md): Results into an Oracle table or through a package procedure — scripts and specifics - [Overview](https://docs.justcat.it/reference/outputs/overview/index.md): Every output format on one table, and the sample run that every format page shows - [PostgreSQL](https://docs.justcat.it/reference/outputs/postgres/index.md): Results into a PostgreSQL table or through a procedure — scripts and specifics - [Properties](https://docs.justcat.it/reference/outputs/properties/index.md): Every field a result carries into an output, with the names a database column or parameter may use - [Settings](https://docs.justcat.it/reference/outputs/settings/index.md): The Output key of the project file — the short form, the list form, file names, the timestamp, databases - [SQL Server](https://docs.justcat.it/reference/outputs/sqlserver/index.md): Results into a SQL Server table or through a stored procedure — scripts and specifics - [TRX](https://docs.justcat.it/reference/outputs/trx/index.md): The run as a Visual Studio test-results file — for Azure DevOps, Visual Studio and VS Code - [XLSX](https://docs.justcat.it/reference/outputs/xlsx/index.md): One Excel sheet, one row per test, formatted as a table with filters — the format every plan writes - [YAML](https://docs.justcat.it/reference/outputs/yaml/index.md): The same document as the JSON output, in YAML — for reading by eye - [CAT PowerShell module](https://docs.justcat.it/reference/powershell-module/index.md): CAT PowerShell module — conventions, installation, and one page per cmdlet. - [Close-CatProject](https://docs.justcat.it/reference/powershell-module/close-catproject/index.md): Close-CatProject — forget the open project and end the CAT session. - [Get-CatDataSource](https://docs.justcat.it/reference/powershell-module/get-catdatasource/index.md): Get-CatDataSource — the data sources of the open project, as objects. - [Get-CatDataSourceList](https://docs.justcat.it/reference/powershell-module/get-catdatasourcelist/index.md): Get-CatDataSourceList — the lists the open project loads data sources from. - [Get-CatInstance](https://docs.justcat.it/reference/powershell-module/get-catinstance/index.md): Get-CatInstance — this CAT installation: identity, versions, license key, platform. Works without sign-in. - [Get-CatProject](https://docs.justcat.it/reference/powershell-module/get-catproject/index.md): Get-CatProject — the open project as an object. - [Get-CatProjectTemplate](https://docs.justcat.it/reference/powershell-module/get-catprojecttemplate/index.md): Get-CatProjectTemplate — the project templates New-CatProject can use. - [Get-CatSession](https://docs.justcat.it/reference/powershell-module/get-catsession/index.md): Get-CatSession — the current CAT session: signed-in user, plan, limits, license key. - [Get-CatTest](https://docs.justcat.it/reference/powershell-module/get-cattest/index.md): Get-CatTest — the tests of the open project, as objects. - [Get-CatTestList](https://docs.justcat.it/reference/powershell-module/get-cattestlist/index.md): Get-CatTestList — the lists the open project loads tests from. - [Get-CatTestResult](https://docs.justcat.it/reference/powershell-module/get-cattestresult/index.md): Get-CatTestResult — the per-test results of the last run. - [Get-CatTestResultSummary](https://docs.justcat.it/reference/powershell-module/get-cattestresultsummary/index.md): Get-CatTestResultSummary — the counts and rates of the last run. - [Installation](https://docs.justcat.it/reference/powershell-module/installation/index.md): Install, upgrade, inventory and remove the CAT PowerShell module - [Introduction](https://docs.justcat.it/reference/powershell-module/introduction/index.md): How the CAT PowerShell module is used: import, the session model, paths, logging, objects on the pipeline, errors, sign-in and plans, environment variables and files. - [Invoke-CatCommand](https://docs.justcat.it/reference/powershell-module/invoke-catcommand/index.md): Invoke-CatCommand — run one command against a data source of the open project. - [Invoke-CatProject](https://docs.justcat.it/reference/powershell-module/invoke-catproject/index.md): Invoke-CatProject — open a project, run its tests, print the summary: the one-liner. - [Invoke-CatTest](https://docs.justcat.it/reference/powershell-module/invoke-cattest/index.md): Invoke-CatTest — run the tests of the open project and get the summary back. - [New-CatProject](https://docs.justcat.it/reference/powershell-module/new-catproject/index.md): New-CatProject — create a project from a template. - [Open-CatProject](https://docs.justcat.it/reference/powershell-module/open-catproject/index.md): Open-CatProject — open a project for the session and return it. - [Set-CatInstance](https://docs.justcat.it/reference/powershell-module/set-catinstance/index.md): Set-CatInstance — set or remove the license key. Works without sign-in. - [Show-CatProject](https://docs.justcat.it/reference/powershell-module/show-catproject/index.md): Show-CatProject — print what the open project contains. - [Show-CatTestResultSummary](https://docs.justcat.it/reference/powershell-module/show-cattestresultsummary/index.md): Show-CatTestResultSummary — print the result block of the last run. - [Project file](https://docs.justcat.it/reference/project-file/index.md): The container and the registry of definition sources - [Complete example](https://docs.justcat.it/reference/project-file/complete-example/index.md): One project file that exercises most of what the .cat.yaml file accepts - [Environment variables](https://docs.justcat.it/reference/project-file/environment-variables/index.md): Environment variable expansion — syntax and where it applies - [Introduction](https://docs.justcat.it/reference/project-file/introduction/index.md): What the .cat.yaml file is, how tools find it, and what it must contain - [Lists — implicit and explicit](https://docs.justcat.it/reference/project-file/lists/index.md): Inline keys and ListOf* external sources; any provider can serve definitions - [Naming conventions](https://docs.justcat.it/reference/project-file/naming-conventions/index.md): How names and synonyms work across all definition sources - [Root settings](https://docs.justcat.it/reference/project-file/root-settings/index.md): Root scalar settings (Threads) - [CAT Python module](https://docs.justcat.it/reference/python-module/index.md): CAT Python module (justcatit) — conventions, installation, and one page per function. - [close_project](https://docs.justcat.it/reference/python-module/close-project/index.md): close_project — forget the open project. - [get_data_source_lists](https://docs.justcat.it/reference/python-module/get-data-source-lists/index.md): get_data_source_lists — the lists the open project loads data sources from. - [get_data_sources](https://docs.justcat.it/reference/python-module/get-data-sources/index.md): get_data_sources — the data sources of the open project. - [get_instance](https://docs.justcat.it/reference/python-module/get-instance/index.md): get_instance — this CAT installation: identity, versions, license key, platform. Works without sign-in. - [get_project_templates](https://docs.justcat.it/reference/python-module/get-project-templates/index.md): get_project_templates — the templates new_project can use. - [get_test_lists](https://docs.justcat.it/reference/python-module/get-test-lists/index.md): get_test_lists — the lists the open project loads tests from. - [get_test_results_summary](https://docs.justcat.it/reference/python-module/get-test-results-summary/index.md): get_test_results_summary — the counts and rates of the last run. - [get_test_results](https://docs.justcat.it/reference/python-module/get-test-results/index.md): get_test_results — the per-test results of the last run. - [get_tests](https://docs.justcat.it/reference/python-module/get-tests/index.md): get_tests — the tests of the open project. - [Installation](https://docs.justcat.it/reference/python-module/installation/index.md): Install the justcatit package and the .NET runtime it needs; update and remove it. - [Introduction](https://docs.justcat.it/reference/python-module/introduction/index.md): How the CAT Python module is used: install and import, the session model, paths, logging, .NET objects in Python, exceptions, sign-in and plans, environment variables and files. - [invoke_command](https://docs.justcat.it/reference/python-module/invoke-command/index.md): invoke_command — run one command against a data source of the open project. - [invoke_project](https://docs.justcat.it/reference/python-module/invoke-project/index.md): invoke_project — open a project, run its tests, return the summary: the one-liner. - [invoke_tests](https://docs.justcat.it/reference/python-module/invoke-tests/index.md): invoke_tests — run the tests of the open project and return the summary. - [new_project](https://docs.justcat.it/reference/python-module/new-project/index.md): new_project — create a project from a template. - [open_project](https://docs.justcat.it/reference/python-module/open-project/index.md): open_project — open a project for the session and return it. - [set_instance](https://docs.justcat.it/reference/python-module/set-instance/index.md): set_instance — set or remove the license key. Works without sign-in. - [Queries](https://docs.justcat.it/reference/queries/index.md): Query definitions, wherever they are stored - [Properties](https://docs.justcat.it/reference/queries/properties/index.md): All query properties — name, query text, data source, description - [Tests](https://docs.justcat.it/reference/tests/index.md): Test definitions, wherever they are stored - [Expectations](https://docs.justcat.it/reference/tests/expectations/index.md): One page per expectation — what it compares, how, and the properties it reads - [Contains](https://docs.justcat.it/reference/tests/expectations/contains/index.md): One set contains every row of the other set - [Introduction](https://docs.justcat.it/reference/tests/expectations/introduction/index.md): What an expectation is, and why a test has one or two queries - [Overview](https://docs.justcat.it/reference/tests/expectations/overview/index.md): All expectations — how many queries each needs and when it passes - [Set is empty](https://docs.justcat.it/reference/tests/expectations/set-is-empty/index.md): You expect the query to return no row at all - [Set is not empty](https://docs.justcat.it/reference/tests/expectations/set-is-not-empty/index.md): You expect the query to return at least one row - [Set row count](https://docs.justcat.it/reference/tests/expectations/set-row-count/index.md): You expect the query to return exactly the specified number of rows - [Sets match](https://docs.justcat.it/reference/tests/expectations/sets-match/index.md): You expect the results of two queries to be the same - [Failure message](https://docs.justcat.it/reference/tests/failure-message/index.md): What a failed test reports — summary, sample of offending rows, complete or not — and the properties that shape it - [Order and key](https://docs.justcat.it/reference/tests/order-and-key/index.md): Why both sets must be sorted, how to sort them, and the key that tells a different row from a missing one - [Properties](https://docs.justcat.it/reference/tests/properties/index.md): All test properties — keys in YAML, columns in tabular sources - [Results](https://docs.justcat.it/reference/tests/results/index.md): What a test ends with — Passed, Failed, Error or Inconclusive — and what a result carries - [Templates](https://docs.justcat.it/reference/tests/templates/index.md): Test templates — a test whose Metadata names a query is expanded into one test per returned row - [Tolerance](https://docs.justcat.it/reference/tests/tolerance/index.md): Treat a small difference between two numbers as no difference ## Release notes - [Release notes](https://docs.justcat.it/release-notes/index.md) - [Archive](https://docs.justcat.it/release-notes/archive/index.md) - [CAT 0.0.1](https://docs.justcat.it/release-notes/archive/0.0.1/index.md) - [CAT 0.0.2](https://docs.justcat.it/release-notes/archive/0.0.2/index.md) - [CAT 0.1.0](https://docs.justcat.it/release-notes/archive/0.1.0/index.md) - [CAT 0.10.0](https://docs.justcat.it/release-notes/archive/0.10.0/index.md): CAT release notes 0.10.0 - [CAT 0.11.0](https://docs.justcat.it/release-notes/archive/0.11.0/index.md): CAT release notes 0.11.0 - [CAT 0.12.0](https://docs.justcat.it/release-notes/archive/0.12.0/index.md): CAT release notes 0.12.0 - [CAT 0.13.0](https://docs.justcat.it/release-notes/archive/0.13.0/index.md): CAT release notes 0.13.0 - [CAT 0.14.0](https://docs.justcat.it/release-notes/archive/0.14.0/index.md): CAT release notes 0.14.0 - [CAT 0.15.0](https://docs.justcat.it/release-notes/archive/0.15.0/index.md): CAT release notes 0.15.0 - [CAT 0.16.0](https://docs.justcat.it/release-notes/archive/0.16.0/index.md): CAT release notes 0.16.0 - [CAT 0.17.0](https://docs.justcat.it/release-notes/archive/0.17.0/index.md): CAT release notes 0.17.0 - [CAT 0.18.0](https://docs.justcat.it/release-notes/archive/0.18.0/index.md): CAT release notes 0.18.0 - [CAT 0.19.0](https://docs.justcat.it/release-notes/archive/0.19.0/index.md): CAT release notes 0.19.0 - [CAT 0.2.0](https://docs.justcat.it/release-notes/archive/0.2.0/index.md) - [CAT 0.20.0](https://docs.justcat.it/release-notes/archive/0.20.0/index.md): CAT release notes 0.20.0 - [CAT 0.21.0](https://docs.justcat.it/release-notes/archive/0.21.0/index.md): CAT release notes 0.21.0 - [CAT 0.22.0](https://docs.justcat.it/release-notes/archive/0.22.0/index.md): CAT release notes 0.22.0 - [CAT 0.23.0](https://docs.justcat.it/release-notes/archive/0.23.0/index.md): CAT release notes 0.23.0 - [CAT 0.24.0](https://docs.justcat.it/release-notes/archive/0.24.0/index.md): CAT release notes 0.24.0 - [CAT 0.25.0](https://docs.justcat.it/release-notes/archive/0.25.0/index.md): CAT release notes 0.25.0 - [CAT 0.26.0](https://docs.justcat.it/release-notes/archive/0.26.0/index.md): CAT release notes 0.26.0 - [CAT 0.27.0](https://docs.justcat.it/release-notes/archive/0.27.0/index.md): CAT release notes 0.27.0 - [CAT 0.28.0](https://docs.justcat.it/release-notes/archive/0.28.0/index.md): CAT release notes 0.28.0 - [CAT 0.3.0](https://docs.justcat.it/release-notes/archive/0.3.0/index.md) - [CAT 0.4.0](https://docs.justcat.it/release-notes/archive/0.4.0/index.md) - [CAT 0.5.0](https://docs.justcat.it/release-notes/archive/0.5.0/index.md) - [CAT 0.6.0](https://docs.justcat.it/release-notes/archive/0.6.0/index.md) - [CAT 0.7.0](https://docs.justcat.it/release-notes/archive/0.7.0/index.md) - [CAT 0.8.0](https://docs.justcat.it/release-notes/archive/0.8.0/index.md) - [CAT 0.9.0](https://docs.justcat.it/release-notes/archive/0.9.0/index.md): CAT release notes 0.9.0 - [CAT 0.9.1](https://docs.justcat.it/release-notes/archive/0.9.1/index.md): CAT release notes 0.9.1 - [CAT 1.0.0](https://docs.justcat.it/release-notes/archive/1.0.0/index.md): CAT release notes 1.0.0 - [CAT 1.1.0](https://docs.justcat.it/release-notes/archive/1.1.0/index.md): CAT release notes 1.1.0 - [CAT 1.10.0](https://docs.justcat.it/release-notes/archive/1.10.0/index.md): CAT release notes 1.10.0 - [CAT 1.11.0](https://docs.justcat.it/release-notes/archive/1.11.0/index.md): CAT release notes 1.11.0 - [CAT 1.12.0](https://docs.justcat.it/release-notes/archive/1.12.0/index.md): CAT release notes 1.12.0 - [CAT 1.13.0](https://docs.justcat.it/release-notes/archive/1.13.0/index.md): CAT release notes 1.13.0 - [CAT 1.2.0](https://docs.justcat.it/release-notes/archive/1.2.0/index.md): CAT release notes 1.2.0 - [CAT 1.3.0](https://docs.justcat.it/release-notes/archive/1.3.0/index.md): CAT release notes 1.3.0 - [CAT 1.4.0](https://docs.justcat.it/release-notes/archive/1.4.0/index.md): CAT release notes 1.4.0 - [CAT 1.5.0](https://docs.justcat.it/release-notes/archive/1.5.0/index.md): CAT release notes 1.5.0 - [CAT 1.6.0](https://docs.justcat.it/release-notes/archive/1.6.0/index.md): CAT release notes 1.6.0 - [CAT 1.7.0](https://docs.justcat.it/release-notes/archive/1.7.0/index.md): CAT release notes 1.7.0 - [CAT 1.8.0](https://docs.justcat.it/release-notes/archive/1.8.0/index.md): CAT release notes 1.8.0 - [CAT 1.9.0](https://docs.justcat.it/release-notes/archive/1.9.0/index.md): CAT release notes 1.9.0 - [Recent releases](https://docs.justcat.it/release-notes/recent/index.md) - [CAT 1.14.0](https://docs.justcat.it/release-notes/recent/1.14.0/index.md): CAT release notes 1.14.0 - [CAT 1.15.0](https://docs.justcat.it/release-notes/recent/1.15.0/index.md): CAT release notes 1.15.0 - [CAT 2.0](https://docs.justcat.it/release-notes/recent/2.0/index.md): CAT release notes 2.0 - [CAT 2.1](https://docs.justcat.it/release-notes/recent/2.1/index.md): CAT release notes 2.1 - [CAT 2.2](https://docs.justcat.it/release-notes/recent/2.2/index.md): CAT release notes 2.2 - [CAT 2.3](https://docs.justcat.it/release-notes/recent/2.3/index.md): CAT release notes 2.3 - [CAT 2.4](https://docs.justcat.it/release-notes/recent/2.4/index.md): CAT release notes 2.4 ## Releases - [Releases](https://docs.justcat.it/releases/index.md): Download CAT Studio and CAT CLI — every file, for every platform, with its SHA256 hash. ## Compare plans - [Compare Plans](https://docs.justcat.it/compare-plans/index.md) ## License - [Terms of use](https://docs.justcat.it/license/index.md) ## Roadmap - [Roadmap](https://docs.justcat.it/roadmap/index.md): CAT roadmap for this year and beyond ## References - [References](https://docs.justcat.it/references/index.md) ## Privacy policy - [Privacy Policy](https://docs.justcat.it/privacy-policy/index.md): We collect telemetry data and it is tied to your account. ## Refund policy - [Refund Policy](https://docs.justcat.it/refund-policy/index.md): Refund rules for paid CAT subscriptions bought through Paddle: the general rule, the discretionary refund for technical defects, consumer rights, and how to ask.