Skip to content

How to find binary from integration test? #5758

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:

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions