The directory contains E2E tests and test applications. The test assume that Argo CD services are installed into
argocd-e2e namespace or cluster in current context. One throw-away
argocd-e2e*** is created prior to tests execute. The throw-away namespace is used as a target namespace for test applications.
test/e2e/testdata directory contains various Argo CD applications. Before test execution directory is copies into
/tmp/argocd-e2e*** temp directory and used in tests as a
Git repository via file url:
Running Tests Locally¶
- Start the e2e version
- Run the tests:
You can observe the tests by using the UI http://localhost:4000/applications.
Configuration of E2E Tests execution¶
start-e2e target starts instances of ArgoCD on your local machine, of which the most will require a network listener. If for whatever reason you already have network services on your machine listening on the same ports, the e2e tests will not be able to run. You can derive from the defaults by setting the following environment variables before you run
ARGOCD_E2E_APISERVER_PORT: Listener port for
ARGOCD_E2E_REPOSERVER_PORT: Listener port for
ARGOCD_E2E_DEX_PORT: Listener port for
ARGOCD_E2E_REDIS_PORT: Listener port for
ARGOCD_E2E_YARN_CMD: Command to use for starting the UI via Yarn (default:
If you have changed the port for
argocd-server, be sure to also set
ARGOCD_SERVER environment variable to point to that port, e.g.
export ARGOCD_SERVER=localhost:8888 before running
make test-e2e so that the test will communicate to the correct server component.
The tests are executed by Argo Workflow defined at
.argo-ci/ci.yaml. CI job The builds an Argo CD image, deploy argo cd components into throw-away kubernetes cluster provisioned
using k3s and run e2e tests against it.
Some effort has been made to balance test isolation with speed. Tests are isolated as follows as each test gets:
- A random 5 character ID.
- A unique Git repository containing the
- A namespace
- An primary name for the app
Tests fails to delete
This maybe due to the metrics server, run this:
If it exits with status code 1, run:
kubectl delete apiservice v1beta1.metrics.k8s.io
/spec/finalizers from the namespace
kubectl edit ns argocd-e2e-ns-*