-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
Give feedbackNo fields configured for issues without a type.