mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-16 06:29:17 +03:00
53 lines
2 KiB
XML
53 lines
2 KiB
XML
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-running-nixos-tests-interactively">
|
||
<title>Running Tests interactively</title>
|
||
<para>
|
||
The test itself can be run interactively. This is particularly
|
||
useful when developing or debugging a test:
|
||
</para>
|
||
<programlisting>
|
||
$ nix-build . -A nixosTests.login.driverInteractive
|
||
$ ./result/bin/nixos-test-driver
|
||
[...]
|
||
>>>
|
||
</programlisting>
|
||
<para>
|
||
You can then take any Python statement, e.g.
|
||
</para>
|
||
<programlisting language="python">
|
||
>>> start_all()
|
||
>>> test_script()
|
||
>>> machine.succeed("touch /tmp/foo")
|
||
>>> print(machine.succeed("pwd")) # Show stdout of command
|
||
</programlisting>
|
||
<para>
|
||
The function <literal>test_script</literal> executes the entire test
|
||
script and drops you back into the test driver command line upon its
|
||
completion. This allows you to inspect the state of the VMs after
|
||
the test (e.g. to debug the test script).
|
||
</para>
|
||
<section xml:id="sec-nixos-test-reuse-vm-state">
|
||
<title>Reuse VM state</title>
|
||
<para>
|
||
You can re-use the VM states coming from a previous run by setting
|
||
the <literal>--keep-vm-state</literal> flag.
|
||
</para>
|
||
<programlisting>
|
||
$ ./result/bin/nixos-test-driver --keep-vm-state
|
||
</programlisting>
|
||
<para>
|
||
The machine state is stored in the
|
||
<literal>$TMPDIR/vm-state-machinename</literal> directory.
|
||
</para>
|
||
</section>
|
||
<section xml:id="sec-nixos-test-interactive-configuration">
|
||
<title>Interactive-only test configuration</title>
|
||
<para>
|
||
You can add configuration that is specific to the interactive test
|
||
driver, by adding to the <literal>interactive</literal> option.
|
||
<literal>interactive</literal> is a copy of the regular test
|
||
options namespace, and is used by the interactive test driver. It
|
||
can be helpful for troubleshooting changes that you don’t want to
|
||
apply to regular test runs.
|
||
</para>
|
||
</section>
|
||
</section>
|