CI that keeps up
← Changelog
v1.0 beta · Oct 22, 2026

Self-orchestrating tests

Integration tests need real dependencies, such as a database or an API server. Today a CI job or a docker-compose file sets them up, outside the test, and differently in development and in CI. Dagger adds a new option: a test can call Dagger modules to set up its own dependencies, so that it runs the same way everywhere.

It calls a Dagger module to start a database or build a binary, then tests against the result. The only external dependency of the test is Dagger, which runs the same way in development and in CI. You can run any integration test from your editor or in CI, with no other setup.

To call a module, the test uses a generated client: code that gives your test language typed access to the functions of the module.

  1. Run dagger module client add <module>. Dagger generates the client.
  2. In your test, call the module through the client, for example to get a database service.
  3. Run your tests as usual, for example with go test.

Module developers can use the same method to test their modules with the normal test tools of their language.

Go is supported first.