<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Organize and run tests on </title>
    <link>https://docs.justcat.it/how-to-guides/organize-and-run-tests/</link>
    <description>Recent content in Organize and run tests on </description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Fri, 21 Aug 2026 10:00:00 +0200</lastBuildDate><atom:link href="https://docs.justcat.it/how-to-guides/organize-and-run-tests/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Create a project file</title>
      <link>https://docs.justcat.it/how-to-guides/organize-and-run-tests/how-to-create-project-file/</link>
      <pubDate>Tue, 25 Jan 2022 14:40:56 +0100</pubDate>
      
      <guid>https://docs.justcat.it/how-to-guides/organize-and-run-tests/how-to-create-project-file/</guid>
      <description>A CAT project is one file, &amp;lt;name&amp;gt;.cat.yaml, that names the data sources, the tests and the outputs — see the Project file reference for everything it can hold. It is plain text; you can write it in any editor and soon will. To start, let a tool create one from the default template: one data source, one test, nothing else.
CAT Studio CAT CLI PowerShell module Python module CAT Studio does not start from a template — it starts from an empty project and writes the file when you save:</description>
    </item>
    
    <item>
      <title>Organize a growing test base</title>
      <link>https://docs.justcat.it/how-to-guides/organize-and-run-tests/organize-test-definitions/</link>
      <pubDate>Tue, 25 Jan 2022 14:40:56 +0100</pubDate>
      
      <guid>https://docs.justcat.it/how-to-guides/organize-and-run-tests/organize-test-definitions/</guid>
      <description>Every definition — data source, query, test — has the same properties wherever it is stored. The project file holds them inline, or it names other places to read them from: other YAML files, a database table, a worksheet, anything a provider can return rows from. The mechanism is Lists; this page is about when to reach for it and how the tools behave once you do.
When one file stops being enough #Too many tests for one file.</description>
    </item>
    
    <item>
      <title>Store definitions in a database</title>
      <link>https://docs.justcat.it/how-to-guides/organize-and-run-tests/store-definitions-in-a-database/</link>
      <pubDate>Wed, 19 Aug 2026 10:00:00 +0200</pubDate>
      
      <guid>https://docs.justcat.it/how-to-guides/organize-and-run-tests/store-definitions-in-a-database/</guid>
      <description>A database can serve CAT its definitions the same way a YAML file does: a row is a definition, the columns are its properties. Any statement that returns the right columns works — a table, a view, a stored procedure — so a test base can be generated, versioned and edited with the tools you already use for data. The mechanism is described in Lists; this page gives you tables to start from.</description>
    </item>
    
    <item>
      <title>Generate tests from metadata</title>
      <link>https://docs.justcat.it/how-to-guides/organize-and-run-tests/generate-tests-from-metadata/</link>
      <pubDate>Wed, 20 Sep 2023 14:40:56 +0100</pubDate>
      
      <guid>https://docs.justcat.it/how-to-guides/organize-and-run-tests/generate-tests-from-metadata/</guid>
      <description>Some rules apply to a whole family of things rather than to one of them: every staging table must have a technical timestamp column, every active contract must have a valid price, every fact table must have an index. Writing one test per member of the family by hand does not scale, and the list changes under you anyway.
CAT can write them for you. You define the family as a query, write one test for one member, and mark that test as a template.</description>
    </item>
    
    <item>
      <title>Use environment variables</title>
      <link>https://docs.justcat.it/how-to-guides/organize-and-run-tests/use-environment-variables/</link>
      <pubDate>Wed, 19 Aug 2026 10:00:00 +0200</pubDate>
      
      <guid>https://docs.justcat.it/how-to-guides/organize-and-run-tests/use-environment-variables/</guid>
      <description>This guide is the plumbing: defining a variable, referring to it, checking it is visible. What CAT does with the value once it has it — where expansion applies, the rules — is the Environment variables reference.
Define the variable #Where you define it decides how long it lives and who sees it:
Level Seen by Use for Session the one shell session; gone when it closes trying things out — not for secrets, the command line lands in the shell history User every new session of that user a developer&amp;rsquo;s machine Machine every new session of every user a shared test server, a self-hosted agent Pipeline the step the pipeline maps it into CI/CD — the platform&amp;rsquo;s variable or secret store; see Integrations Windows Linux and macOS Pipeline Session, in PowerShell:</description>
    </item>
    
    <item>
      <title>Work with secrets</title>
      <link>https://docs.justcat.it/how-to-guides/organize-and-run-tests/work-with-secrets/</link>
      <pubDate>Tue, 25 Jan 2022 14:40:56 +0100</pubDate>
      
      <guid>https://docs.justcat.it/how-to-guides/organize-and-run-tests/work-with-secrets/</guid>
      <description>🙀 Never put a password, a token or a secret connection string into a project file. Not for a quick test, not &amp;ldquo;for now&amp;rdquo;. The file is text, it is version-controlled, it is shared. Every option below keeps the file clean.# wrong - this password is now in Git, in every clone, forever Data sources: - Name: DWH Provider: SqlServer@2 Connection string: Server=dwh;Database=DWH;User Id=cat;Password=Summer2024! Environment variables — the universal way #Works with every provider and every tool, on a laptop and in a pipeline.</description>
    </item>
    
    <item>
      <title>Run your tests</title>
      <link>https://docs.justcat.it/how-to-guides/organize-and-run-tests/run-your-tests/</link>
      <pubDate>Tue, 25 Jan 2022 14:40:56 +0100</pubDate>
      
      <guid>https://docs.justcat.it/how-to-guides/organize-and-run-tests/run-your-tests/</guid>
      <description>Every CAT tool runs the same project file. CAT Studio while you write tests, the PowerShell module or CAT CLI when you script or schedule them, the Python module when they are part of a notebook or a Python pipeline — the project file does not care.
Run everything #CAT Studio CAT CLI PowerShell module Python module Open the project (Project page → Open existing project, or a recent one), go to Tests and press F9 — Run all tests.</description>
    </item>
    
    <item>
      <title>Run tests in parallel</title>
      <link>https://docs.justcat.it/how-to-guides/organize-and-run-tests/run-tests-in-parallel/</link>
      <pubDate>Thu, 17 Aug 2023 14:40:56 +0100</pubDate>
      
      <guid>https://docs.justcat.it/how-to-guides/organize-and-run-tests/run-tests-in-parallel/</guid>
      <description>Where the setting goes #Threads is a root setting — a key at the very beginning of a line, at the same level as Data sources: and Tests:, not inside any of them. In context:
Threads: 3 Data sources: - Name: DWH Provider: SqlServer@2 Connection string: &amp;quot;%DWH_CONNECTION_STRING%&amp;quot; Tests: - Name: Currency dimension is loaded Data source: DWH Query: SELECT * FROM Dimension.Currency Expectation: set is not empty It accepts a positive whole number (or an environment variable that holds one, &amp;quot;%CAT_THREADS%&amp;quot;), defaults to 1, and CAT refuses 0, negatives and non-numbers before any test starts — see Root settings.</description>
    </item>
    
  </channel>
</rss>
