Test

Unit Test

Run all unit tests:

Bash

  1. # at the root of the repo
  2. go test ./...

Note: not all tests are strictly “unit” tests at the moment because some tests will actually rely on internet. Help wanted here :)

E2E(End-to-End) Test

GitHub Actions

Our e2e test will run in GitHub Actions automatically when there is a change on the main branch.

The definition of the GitHub Action is here, and the configuration files used in e2e tests are here.

Run E2E Test Locally

We have a simple e2e test that tests the following plugins:

  • repo-scaffolding
  • github-actions
  • argocd
  • argocdapp

The template for the config file is located here.

To run the e2e test locally, you will need docker up and running first.

Then, set the following environment variables:

  • GITHUB_USER
  • GITHUB_TOKEN
  • DOCKERHUB_USERNAME
  • IMAGE_REPO_PASSWORD

And execute the following command:

Bash

  1. bash hack/e2e/e2e-run.sh

This test script will download kind/kubectl, start a K8s cluster as a docker container using kind, then execute dtm commands, check result, and clean up the environment.