nixpkgs/nixos/doc/manual/development/running-nixos-tests.section.md

1.7 KiB

Running Tests

You can run tests using nix-build. For example, to run the test login.nix, you do:

$ cd /my/git/clone/of/nixpkgs
$ nix-build -A nixosTests.login

After building/downloading all required dependencies, this will perform a build that starts a QEMU/KVM virtual machine containing a NixOS system. The virtual machine mounts the Nix store of the host; this makes VM creation very fast, as no disk image needs to be created. Afterwards, you can view a log of the test:

$ nix-store --read-log result

System Requirements

NixOS tests require virtualization support. This means that the machine must have kvm in its system features list, or apple-virt in case of macOS. These features are autodetected locally, but apple-virt is only autodetected since Nix 2.19.0.

Features of remote builders must additionally be configured manually on the client, e.g. on NixOS with nix.buildMachines.*.supportedFeatures or through general Nix configuration.

If you run the tests on a macOS machine, you also need a "remote" builder for Linux; possibly a VM. nix-darwin users may enable nix.linux-builder.enable to launch such a VM.