Skip to content

Unit test gen docs #398

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Jun 13, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/finishing-touches/docstrings.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Docstrings generation is part of the [finishing touches](/future-development#fin

## Usage

Once you are done with your pull request and its reviews, you may want to perform finishing touches to your code, such as adding in-code documentation. You can request CodeRabbit to generate docstrings by typing `@coderabbitai generate docstrings` in a comment under that pull request.
Once you are done with your pull request and its reviews, you may want to perform finishing touches to your code, such as adding in-code documentation. You can request CodeRabbit to generate docstrings by typing `@coderabbitai generate docstrings` in a comment under that pull request or by clicking the `📝 Generate Docstrings` checkbox under `✨ Finishing Touches` in the CodeRabbit Walkthrough.

Once sent, CodeRabbit will perform the following actions:

Expand Down
69 changes: 69 additions & 0 deletions docs/finishing-touches/unit-test-generation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
title: Generate Unit Tests
description: Automated Unit Test Generation with CodeRabbit
---

```mdx-code-block
import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx';

<ProPlanNotice />
```

:::warning
This feature is [experimental](/early-access#experiments).
:::

# Unit Test Generation

Unit Test Generation is part of the [finishing touches](/future-development#finishing-touches).

Unit Test Generation is an Early Access Experimental feature.

## Usage

Once you are done with your pull request and its reviews, you may want to perform finishing touches to your code, such as adding unit tests. You can request CodeRabbit to generate unit tests by typing `@coderabbitai auto-generate unit tests` in a comment under that pull request or by clicking a checkbox under `🧪 Generate Unit Tests` in the CodeRabbit Walkthrough.

Once sent, CodeRabbit will perform the following actions:

- The CodeRabbit agent will examine your code for places where it needs tests
- Unit tests will be generated for the PR, in a separate PR, in the same PR in a new commit, or in a comment to copy-paste, depending on your choice
- If (and only if) you choose to generate the unit tests in a separate PR, CodeRabbit will examine your GitHub checks (build steps and tests and such) and adjust the PR to deal with build failures, test failures and similar.

Here's an example of what a pull request may look like:

![Unit Tests PR](/img/finishing-touches/unit-tests-pull-request.png)

## Path Instructions

You can customize the generated unit tests by providing instructions based on file paths in your `.coderabbit.yaml`. The `path` is a [minimatch](https://github.com/isaacs/minimatch) pattern.

```yaml
code_generation:
unit_tests:
path_instructions:
- path: "**/*.ts"
instructions: |
Use vitest for testing framework.
Generate comprehensive test cases including edge cases and error conditions.
Do not omit the imports; the test file must be valid.
```

## Supported software forges

These software forges are supported:

- GitHub

We are working on GitLab and Azure DevOps support as of writing.

## Supported CI/CD systems

These CI/CD systems are supported for post-generation adjustments:

- GitHub actions

We are working on CircleCI and Travis CI support as of writing.

## Supported languages

Any programming language and unit test library / framework known to the LLM is supported.
Loading