-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Closed
Description
Is there a cleaner way to find a binary executable from an integration test other than looking at current_exe()
and finding it from there? Cargo itself uses this logic:
cargo/tests/testsuite/cargotest/support/mod.rs
Lines 392 to 409 in 8482505
pub fn cargo_dir() -> PathBuf { | |
env::var_os("CARGO_BIN_PATH") | |
.map(PathBuf::from) | |
.or_else(|| { | |
env::current_exe().ok().map(|mut path| { | |
path.pop(); | |
if path.ends_with("deps") { | |
path.pop(); | |
} | |
path | |
}) | |
}) | |
.unwrap_or_else(|| panic!("CARGO_BIN_PATH wasn't set. Cannot continue running test")) | |
} | |
pub fn cargo_exe() -> PathBuf { | |
cargo_dir().join(format!("cargo{}", env::consts::EXE_SUFFIX)) | |
} |
I've seen others use Command::new("./target/debug/NAME")
which can fail in some cases.
It seems like this should be easier. Am I missing a better way? If not, would it make sense to provide some method to more easily find binaries?
Metadata
Metadata
Assignees
Labels
No labels