# Automated testing using GitHub Actions

Run your tests when you or your team make changes.

You can use the Supabase CLI to run automated tests.

## Testing your database

After you have [created unit tests](/docs/guides/database/testing) for your database, you can use the GitHub Action to run the tests.

Inside your repository, create a new file inside the `.github/workflows` folder called `database-tests.yml`. Copy this snippet inside the file, and the action will run whenever a new PR is created:

```yaml
name: 'database-tests'
on:
  pull_request:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: supabase/setup-cli@v1
        with:
          version: latest
      - run: supabase db start
      - run: supabase test db

```

## Testing your Edge Functions

After you have [created unit tests](/docs/guides/functions/unit-test) for your Edge Functions, you can use the GitHub Action to run the tests.

Inside your repository, create a new file inside the `.github/workflows` folder called `functions-tests.yml`. Copy this snippet inside the file, and the action will run whenever a new PR is created:

```yaml
name: 'functions-tests'
on:
  pull_request:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: supabase/setup-cli@v1
        with:
          version: latest
      - uses: denoland/setup-deno@v2
        with:
          deno-version: latest
      - run: supabase start
      - run: deno test --allow-all deno-test.ts --env-file .env.local

```

## More resources

- Learn more about the [pgTAP extension](/docs/guides/database/extensions/pgtap) for database testing.
- Official pgTAP Documentation: [pgtap.org](https://pgtap.org/)
