Macro nu_test_support::nu

source ·
macro_rules! nu {
    (
        @options [ $($options:tt)* ]
        cwd: $value:expr,
        $($rest:tt)*
    ) => { ... };
    (
        @options [ $($options:tt)* ]
        $field:ident : $value:expr,
        $($rest:tt)*
    ) => { ... };
    (
        @options [ $($options:tt)* ]
        $path:expr
        $(, $part:expr)*
        $(,)*
    ) => { ... };
    (@nu_opts $( $field:ident => $value:expr ; )*) => { ... };
    (@format_path $path:expr $(,)?) => { ... };
    (@format_path $path:expr, $($part:expr),* $(,)?) => { ... };
    (@main $opts:expr, $path:expr) => { ... };
    ($($token:tt)*) => { ... };
}
Expand description

Run a command in nu and get its output

The nu! macro accepts a number of options like the cwd in which the command should be run. It is also possible to specify a different locale to test locale dependent commands.

Pass options as the first arguments in the form of key_1: value_1, key_1: value_2, .... The options are defined in the NuOpts struct inside the nu! macro.

The command can be formatted using {} just like println! or format!. Pass the format arguments comma separated after the command itself.

§Examples

use nu_test_support::nu;

let outcome = nu!(
    "date now | date to-record | get year"
);

let dir = "/";
let outcome = nu!(
    "ls {} | get name",
    dir,
);

let outcome = nu!(
    cwd: "/",
    "ls | get name",
);

let cell = "size";
let outcome = nu!(
    locale: "de_DE.UTF-8",
    "ls | into int {}",
    cell,
);

let decimals = 2;
let outcome = nu!(
    locale: "de_DE.UTF-8",
    "10 | into string --decimals {}",
    decimals,
);