2021-07-02 14:24:02 +02:00
|
|
|
<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>
|
2022-01-02 23:48:56 +01:00
|
|
|
$ nix-build . -A nixosTests.login.driverInteractive
|
2021-06-06 19:00:12 +02:00
|
|
|
$ ./result/bin/nixos-test-driver --interactive
|
2022-01-02 23:48:56 +01:00
|
|
|
[...]
|
|
|
|
>>>
|
2021-07-02 14:24:02 +02:00
|
|
|
</programlisting>
|
|
|
|
<para>
|
|
|
|
You can then take any Python statement, e.g.
|
|
|
|
</para>
|
|
|
|
<programlisting language="python">
|
2022-01-02 23:48:56 +01:00
|
|
|
>>> start_all()
|
|
|
|
>>> test_script()
|
|
|
|
>>> machine.succeed("touch /tmp/foo")
|
|
|
|
>>> print(machine.succeed("pwd")) # Show stdout of command
|
2021-07-02 14:24:02 +02:00
|
|
|
</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>
|
|
|
|
<para>
|
|
|
|
You can re-use the VM states coming from a previous run by setting
|
|
|
|
the <literal>--keep-vm-state</literal> flag.
|
|
|
|
</para>
|
|
|
|
<programlisting>
|
2021-06-06 19:00:12 +02:00
|
|
|
$ ./result/bin/nixos-test-driver --interactive --keep-vm-state
|
2021-07-02 14:24:02 +02:00
|
|
|
</programlisting>
|
|
|
|
<para>
|
|
|
|
The machine state is stored in the
|
|
|
|
<literal>$TMPDIR/vm-state-machinename</literal> directory.
|
|
|
|
</para>
|
|
|
|
</section>
|