> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usetusk.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Requirements

> Requirements for Tusk to generate tests

## Checklist

Please go through the following checklist of requirements to see if your team or repo is ready to onboard Tusk.

### API Drift Detection

<Tabs>
  <Tab title="Node.js">
    * **Node.js** backend service
    * All packages used are present in the [supported technologies list](https://github.com/Use-Tusk/drift-node-sdk?tab=readme-ov-file#requirements)
  </Tab>

  <Tab title="Python">
    * **Python** backend service using **Python 3.12+**
    * All packages used are present in the [supported technologies list](https://github.com/Use-Tusk/drift-python-sdk?tab=readme-ov-file#requirements)
  </Tab>
</Tabs>

### Unit Test Generation

<Tabs>
  <Tab title="PR/MR Check">
    * **GitHub or GitLab** for version control
    * Testing framework(s) already set up in your repo
    * At least **5 existing unit tests** in your repo
    * **Unit tests running in CI** (e.g., via GitHub Actions, GitLab CI/CD, Jenkins, or similar)
    * Habit of raising PRs/MRs for code changes
    * **Languages (and associated testing frameworks) supported**
      * JavaScript
      * TypeScript
      * Python
      * Ruby
      * Golang
      * Java
      * C/C++
      * C#/.NET
      * Rust
      * PHP
  </Tab>

  <Tab title="CoverBot">
    * All "PR/MR Check" requirements except languages supported (superseded by below requirement)
    * **Testing frameworks supported**
      * pytest
      * Jest
      * Mocha
      * Vitest
      * Bun
      * Minitest
      * RSpec
      * JUnit
      * Go testing library
      * xUnit
      * Karma
  </Tab>
</Tabs>

## Helpful but optional

These following items are recommended but not required. They allow you to optimize the quality of the unit/integration tests generated by Tusk.

* **Linear or Jira** for project management (and respective integrations with GitHub or GitLab)
* Mature testing utils and infra (e.g., examples of mocks, utils for set-up/tear-down as necessary)
* Code coverage tracking
* Documented testing guidelines

## FAQs

<AccordionGroup>
  <Accordion title="What testing frameworks do you support?" iconType="regular">
    We support all testing frameworks associated with the languages that we support (see checklist above). The most common test frameworks that Tusk is used for are:

    * Vitest
    * Jest
    * pytest
    * RSpec
    * minitest
    * JUnit
    * PHPUnit
    * React Testing Library
    * Golang testing library
    * xUnit
  </Accordion>

  <Accordion title="I haven't set up a testing framework in my repo. Can Tusk do that for me?">
    No. Tusk doesn't yet automate the setup of testing frameworks in your repo. You should do the initial setup before implementing Tusk.
  </Accordion>

  <Accordion title="Why do I need to have unit tests running in CI already?">
    Tusk uses your existing CI/CD workflow as a reference for running the unit tests that it generates. The agent also surfaces any dependencies required to run the tests, which helps with one-time setup during onboarding.
  </Accordion>

  <Accordion title="Do you have resources for setting up a CI workflow to run unit tests?">
    Yes. Here are helpful resources for setting up a [GitHub Actions workflow](https://docs.github.com/en/actions/use-cases-and-examples/building-and-testing) and [GitLab CI/CD pipeline](https://docs.gitlab.com/ci/).
  </Accordion>
</AccordionGroup>

Have a question that's not answered? Reach out to [support@usetusk.ai](mailto:support@usetusk.ai).
