pub struct CargoRun { /* private fields */ }
Expand description
The run
subcommand (emulated).
Created via CargoBuild::run
.
Benefits over spawning cargo run
:
- Able to cache binary path, avoiding cargo overhead.
- Independent of CWD.
- stdout/stderr are clean of
cargo run
output.
Relevant features
print
for logged output to be printed instead, generally for test writing.
§Example
To create a CargoRun
:
let temp = assert_fs::TempDir::new().unwrap();
let run = escargot::CargoBuild::new()
.bin("bin")
.current_release()
.current_target()
.manifest_path("tests/fixtures/bin/Cargo.toml")
.target_dir(temp.path())
.run()
.unwrap();
println!("artifact={}", run.path().display());
See CargoRun::path
for how to then run the newly compiled
program.
Implementations§
source§impl CargoRun
impl CargoRun
sourcepub fn path(&self) -> &Path
pub fn path(&self) -> &Path
Path to the specified binary.
This is to support alternative ways of launching the binary besides Command
.
§Example
let temp = assert_fs::TempDir::new().unwrap();
let run = escargot::CargoBuild::new()
.bin("bin")
.current_release()
.current_target()
.manifest_path("tests/fixtures/bin/Cargo.toml")
.target_dir(temp.path())
.run()
.unwrap();
println!("artifact={}", run.path().display());
or
let temp = assert_fs::TempDir::new().unwrap();
let run = escargot::CargoBuild::new()
.example("example_fixture")
.current_release()
.current_target()
.manifest_path("tests/fixtures/example/Cargo.toml")
.target_dir(temp.path())
.run()
.unwrap();
println!("artifact={}", run.path().display());
sourcepub fn command(&self) -> Command
pub fn command(&self) -> Command
Run the build artifact.
§Example
let temp = assert_fs::TempDir::new().unwrap();
let run = escargot::CargoBuild::new()
.bin("bin")
.current_release()
.current_target()
.manifest_path("tests/fixtures/bin/Cargo.toml")
.target_dir(temp.path())
.run()
.unwrap()
.command()
.arg("--help")
.status()
.unwrap();
or
extern crate escargot;
extern crate assert_fs;
let temp = assert_fs::TempDir::new().unwrap();
let run = escargot::CargoBuild::new()
.example("example_fixture")
.current_release()
.current_target()
.manifest_path("tests/fixtures/example/Cargo.toml")
.target_dir(temp.path())
.run()
.unwrap()
.command()
.arg("--help")
.status()
.unwrap();
Auto Trait Implementations§
impl RefUnwindSafe for CargoRun
impl Send for CargoRun
impl Sync for CargoRun
impl Unpin for CargoRun
impl UnwindSafe for CargoRun
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more