1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-11-10 05:09:44 +01:00
home-manager/docs/manual/contributing/tests.md

39 lines
1.1 KiB
Markdown
Raw Normal View History

# Tests {#sec-tests}
Home Manager includes a basic test suite and it is highly recommended to
include at least one test when adding a module. Tests are typically in
the form of \"golden tests\" where, for example, a generated
configuration file is compared to a known correct file.
It is relatively easy to create tests by modeling the existing tests,
found in the `tests` project directory. For a full reference to the
functions available in test scripts, you can look at NMT's
[bash-lib](https://git.sr.ht/~rycee/nmt/tree/master/item/bash-lib).
The full Home Manager test suite can be run by executing
``` shell
$ nix-shell --pure tests -A run.all
```
in the project root. List all test cases through
``` shell
$ nix-shell --pure tests -A list
```
and run an individual test, for example `alacritty-empty-settings`,
through
``` shell
$ nix-shell --pure tests -A run.alacritty-empty-settings
```
However, those invocations will impurely source the system's nixpkgs,
and may cause failures. To run against the nixpkgs from the flake.lock,
use instead e.g.
``` shell
$ nix develop --ignore-environment .#all
```