use assert_cmd::Command; #[test] fn call() { // Add the `nu` binaries to the path env let path_env = std::env::join_paths( std::iter::once(nu_test_support::fs::binaries().into()).chain( std::env::var_os(nu_test_support::NATIVE_PATH_ENV_VAR) .as_deref() .map(std::env::split_paths) .into_iter() .flatten(), ), ) .expect("failed to make path var"); let assert = Command::new(nu_test_support::fs::executable_path()) .env(nu_test_support::NATIVE_PATH_ENV_VAR, path_env) .args([ "--no-config-file", "--no-std-lib", "--plugins", &format!( "[crates{0}nu_plugin_nu_example{0}nu_plugin_nu_example.nu]", std::path::MAIN_SEPARATOR ), "--commands", "nu_plugin_nu_example 4242 teststring", ]) .assert() .success(); let output = assert.get_output(); let stdout = String::from_utf8_lossy(&output.stdout); let stderr = String::from_utf8_lossy(&output.stderr); assert!(stdout.contains("one")); assert!(stdout.contains("two")); assert!(stdout.contains("three")); assert!(stderr.contains("name: nu_plugin_nu_example")); assert!(stderr.contains("4242")); assert!(stderr.contains("teststring")); }