-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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