mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-13 21:32:23 +03:00
nixos/doc/writing-nixos-tests: Various improvements
Thanks to fricklerhandwerk for the many suggestions, most of which I have fixupped into preceding commits.
This commit is contained in:
parent
b2caf7965c
commit
6a78b41476
@ -39,12 +39,10 @@ It uses two client nodes to test correct locking across server crashes.
|
||||
|
||||
## Calling a test {#sec-calling-nixos-tests}
|
||||
|
||||
Tests are invoked a bit differently depending on whether the test lives in NixOS or in another project.
|
||||
Tests are invoked differently depending on whether the test is part of NixOS or lives in a different project.
|
||||
|
||||
### Testing within NixOS {#sec-call-nixos-test-in-nixos}
|
||||
|
||||
Test modules can be instantiated into derivations in multiple ways.
|
||||
|
||||
Tests that are part of NixOS are added to [`nixos/tests/all-tests.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/all-tests.nix).
|
||||
|
||||
```nix
|
||||
@ -54,19 +52,22 @@ Tests that are part of NixOS are added to [`nixos/tests/all-tests.nix`](https://
|
||||
Overrides can be added by defining an anonymous module in `all-tests.nix`.
|
||||
|
||||
```nix
|
||||
hostname = runTest { imports = [ ./hostname.nix ]; defaults.networking.firewall.enable = false; };
|
||||
hostname = runTest {
|
||||
imports = [ ./hostname.nix ];
|
||||
defaults.networking.firewall.enable = false;
|
||||
};
|
||||
```
|
||||
|
||||
You can run a test with attribute name `mytest` in `nixos/tests/all-tests.nix` by invoking:
|
||||
You can run a test with attribute name `hostname` in `nixos/tests/all-tests.nix` by invoking:
|
||||
|
||||
```shell
|
||||
cd /my/git/clone/of/nixpkgs
|
||||
nix-build -A nixosTests.mytest
|
||||
nix-build -A nixosTests.hostname
|
||||
```
|
||||
|
||||
### Testing outside the NixOS project {#sec-call-nixos-test-outside-nixos}
|
||||
|
||||
Outside the `nixpkgs` repository, you can instantiate the test by first acquiring the NixOS library,
|
||||
Outside the `nixpkgs` repository, you can instantiate the test by first importing the NixOS library,
|
||||
|
||||
```nix
|
||||
# regular nix
|
||||
|
@ -49,15 +49,11 @@
|
||||
<section xml:id="sec-calling-nixos-tests">
|
||||
<title>Calling a test</title>
|
||||
<para>
|
||||
Tests are invoked a bit differently depending on whether the test
|
||||
lives in NixOS or in another project.
|
||||
Tests are invoked differently depending on whether the test is
|
||||
part of NixOS or lives in a different project.
|
||||
</para>
|
||||
<section xml:id="sec-call-nixos-test-in-nixos">
|
||||
<title>Testing within NixOS</title>
|
||||
<para>
|
||||
Test modules can be instantiated into derivations in multiple
|
||||
ways.
|
||||
</para>
|
||||
<para>
|
||||
Tests that are part of NixOS are added to
|
||||
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/all-tests.nix"><literal>nixos/tests/all-tests.nix</literal></link>.
|
||||
@ -70,22 +66,26 @@
|
||||
<literal>all-tests.nix</literal>.
|
||||
</para>
|
||||
<programlisting language="bash">
|
||||
hostname = runTest { imports = [ ./hostname.nix ]; defaults.networking.firewall.enable = false; };
|
||||
hostname = runTest {
|
||||
imports = [ ./hostname.nix ];
|
||||
defaults.networking.firewall.enable = false;
|
||||
};
|
||||
</programlisting>
|
||||
<para>
|
||||
You can run a test with attribute name <literal>mytest</literal>
|
||||
in <literal>nixos/tests/all-tests.nix</literal> by invoking:
|
||||
You can run a test with attribute name
|
||||
<literal>hostname</literal> in
|
||||
<literal>nixos/tests/all-tests.nix</literal> by invoking:
|
||||
</para>
|
||||
<programlisting>
|
||||
cd /my/git/clone/of/nixpkgs
|
||||
nix-build -A nixosTests.mytest
|
||||
nix-build -A nixosTests.hostname
|
||||
</programlisting>
|
||||
</section>
|
||||
<section xml:id="sec-call-nixos-test-outside-nixos">
|
||||
<title>Testing outside the NixOS project</title>
|
||||
<para>
|
||||
Outside the <literal>nixpkgs</literal> repository, you can
|
||||
instantiate the test by first acquiring the NixOS library,
|
||||
instantiate the test by first importing the NixOS library,
|
||||
</para>
|
||||
<programlisting language="bash">
|
||||
# regular nix
|
||||
|
Loading…
Reference in New Issue
Block a user