---
title: "CAT 3.1"
description: "CAT release notes 3.1"
url: "https://docs.justcat.it/release-notes/recent/3.1/"
---
# CAT 3.1


Lots of enterprise data is in MS Excel. That is a fact and no testing tool should pretend it is otherwise.

Support for MS Excel in CAT has a long history. This release closes some gaps and improves performance.

## Tests in Excel

Our latest `Excel@2` and `Csv@2` providers already allowed you to test MS Excel and CSV data, compare them, use them for generating other tests etc. But they had one ugly limitation. Almost every technology we support for testing data can be also used as a source of definitions of tests - and these two were the exception. The limitation is now gone.

So if you dislike YAML for defining tests, no problem to use MS Excel now:

![Test definitions in MS Excel sheet](tests-in-excel.png)

~~~yaml
Get list of tests from:
- Provider: Excel@2
  Connection string: TestsFromBusiness.xlsx
  Query: |
    SELECT * FROM (
      SELECT * FROM ClaimTests
      UNION ALL
      SELECT * FROM PoliciesTests
    ) WHERE IsDisabled IS NOT TRUE
~~~

Before version 3.1 it was possible, too. But not with `Excel@2` provider. What it means?

* now you can use any DuckDB syntax (functions, unions, joins etc.) in the query
* now you can get rid of all other Excel and CSV providers in your project.


## Faster Excel and CSV Testing

CAT used to load all Excel and CSV files of your project before running the first test, even when you ran only a subset of your tests.

Now CAT carefully decides what to load and reloads the data only when it really changed. That improves performance when you are running subsets of your tests.

<br />

Both changes apply to all our tools - CAT Studio, CAT CLI, CAT PowerShell module and CAT Python module. Read more in [Test CSV and Excel files](https://docs.justcat.it/how-to-guides/data-platforms/test-csv-and-excel-files/ "Test CSV and Excel files").


## Do I need to change anything?

Usage of older providers: `Excel@1`, `ExcelOleDB@1`, `Csv@1` and `CsvOleDB@1` is now discouraged.

Switching is not required, but recommended. If you used the old providers, consider using `Csv@2` and `Excel@2`.

One warning before you move your lists from `Excel@1` to `Excel@2`: `Excel@1` skipped rows with strike-through text and `Excel@2` does not. If you used strike-through to disable a test, add a column for that and filter on it in the query, like the `IsDisabled` column above.

-----------------------------------------

![Happy testing text in MS Excel sheet](happy-testing.png)

