nixos/testing: Improve interactive docs

Changed files
+47 -10
nixos
+9 -3
nixos/doc/manual/development/running-nixos-tests-interactively.section.md
···
## Interactive-only test configuration {#sec-nixos-test-interactive-configuration}
-
You can add configuration that is specific to the interactive test driver, by adding to the `interactive` option.
-
`interactive` 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.
+
The `.driverInteractive` attribute combines the regular test configuration with
+
definitions from the [`interactive` submodule](#opt-interactive). This gives you
+
a more usable, graphical, but slightly different configuration.
+
+
You can add your own interactive-only test configuration by adding extra
+
configuration to the [`interactive` submodule](#opt-interactive).
+
+
To interactively run only the regular configuration, build the `<test>.driver` attribute
+
instead, and call it with the flag `result/bin/nixos-test-driver --interactive`.
+17 -6
nixos/doc/manual/from_md/development/running-nixos-tests-interactively.section.xml
···
<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.
+
The <literal>.driverInteractive</literal> attribute combines the
+
regular test configuration with definitions from the
+
<link linkend="opt-interactive"><literal>interactive</literal>
+
submodule</link>. This gives you a more usable, graphical, but
+
slightly different configuration.
+
</para>
+
<para>
+
You can add your own interactive-only test configuration by adding
+
extra configuration to the
+
<link linkend="opt-interactive"><literal>interactive</literal>
+
submodule</link>.
+
</para>
+
<para>
+
To interactively run only the regular configuration, build the
+
<literal>&lt;test&gt;.driver</literal> attribute instead, and call
+
it with the flag
+
<literal>result/bin/nixos-test-driver --interactive</literal>.
</para>
</section>
</section>
+21 -1
nixos/lib/testing/interactive.nix
···
options = {
interactive = mkOption {
description = mdDoc ''
-
Tests [can be run interactively](#sec-running-nixos-tests-interactively).
+
Tests [can be run interactively](#sec-running-nixos-tests-interactively)
+
using the program in the test derivation's `.driverInteractive` attribute.
When they are, the configuration will include anything set in this submodule.
You can set any top-level test option here.
+
+
Example test module:
+
+
```nix
+
{ config, lib, ... }: {
+
+
nodes.rabbitmq = {
+
services.rabbitmq.enable = true;
+
};
+
+
# When running interactively ...
+
interactive.nodes.rabbitmq = {
+
# ... enable the web ui.
+
services.rabbitmq.managementPlugin.enable = true;
+
};
+
}
+
```
+
+
For details, see the section about [running tests interactively](#sec-running-nixos-tests-interactively).
'';
type = moduleType;
visible = "shallow";