An open API service indexing awesome lists of open source software.

https://github.com/benlorantfy/knapsack-vitest


https://github.com/benlorantfy/knapsack-vitest

Last synced: 8 days ago
JSON representation

Awesome Lists containing this project

README

          

> [!WARNING]
> This package is deprecated. Please use the offical version [@knapsack-pro/vitest](https://docs.knapsackpro.com/vitest/guide/)

# ![knapsack-vitest](./img/logo.png)


Split your vitest test suite across multiple parrallel CI nodes with Knapsack Pro


knapsack-vitest CI status
Created by Ben Lorantfy
License

## Motiviation
[Knapsack Pro](https://knapsackpro.com/) is a tool that helps you run your test suite in parallel across multiple CI nodes. It does this by intelligently splitting your test suite into smaller chunks and running them on different nodes. This is useful for speeding up your CI pipeline and reducing the time it takes to run your tests.

However, there is no native integration for Vitest. This package is a custom integration that allows you to use Knapsack Pro with Vitest (following Knapsack Pro's guide [here](https://docs.knapsackpro.com/2020/how-to-build-native-integration-with-knapsack-pro-api-to-run-tests-in-parallel-for-any-test-runner-testing-framework))

## Getting Started
1. Install the package
```
npm install knapsack-vitest
```
2. Update your CI to use a matrix build. See the [example project](.github/workflows/example.yaml) for reference.

https://github.com/BenLorantfy/knapsack-vitest/blob/437b95103a00ebc4610b2cd7b19d23e1b9435def/.github/workflows/test.yaml#L9-L13

3. Replace `vitest` with `knapsack-vitest` in your CI config
4. Set the `KNAPSACK_PRO_TEST_SUITE_TOKEN` environment variable to your Knapsack Pro test suite token, and optionally set other environemnt variables as needed. See the [example project](.github/workflows/example.yaml) for reference.

https://github.com/BenLorantfy/knapsack-vitest/blob/437b95103a00ebc4610b2cd7b19d23e1b9435def/.github/workflows/test.yaml#L36-L45

> [!NOTE]
> The environment variable is called `KNAPSACK_PRO_TEST_SUITE_TOKEN`, not `KNAPSACK_PRO_TEST_SUITE_TOKEN_JEST`