now that we have per-host custom tests, it does not make sense anymore to have magic lumpsum tests. users are encouraged to use the new digga.lib.allProfilesTest standard test and add it to a host's test like so: `nixos.<host>.tests = [ digga.lib.allPrefilesTest ];`
1.8 KiB
Testing
Testing is always an important aspect of any software development project, and NixOS offers some incredibly powerful tools to write tests for your configuration, and, optionally, run them in CI.
Unit Tests
Unit tests can be created from regular derivations, and they can do almost anything you can imagine. By convention, it is best to test your packages during their check phase. All packages and their tests will be built during CI.
Integration Tests
All your profiles defined in suites can be tested against an individual host.
Simply use digga's pre-baked digga.lib.allProfilesTest
like so:
{
hosts = {
Morty.tests = [ allProfilesTest ];
};
}
You can write integration tests for one or more NixOS VMs that can, optionally, be networked together, and yes, it's as awesome as it sounds!
Be sure to use the mkTest
function from Digga, digga.lib.mkTest
which wraps the official testing-python function to ensure
that the system is setup exactly as it is for a bare DevOS system. There are
already great resources for learning how to use these tests effectively,
including the official docs, a fantastic blog post,
and the examples in nixpkgs.