These are the contents of my src/lib.rs
file:
pub fn foo() {}
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
foo();
}
}
When I run cargo test
, I get the following error:
error[E0425]: cannot find function `foo` in this scope
--> src/lib.rs:7:9
|
7 | foo();
| ^^^ not found in this scope
How do I call foo
from inside the test
module?
You could use
super::
to refer to the parent module:In Rust 2015, you can use
::
to refer to the root module of the crate:In Rust 2018, you can use
crate::
to refer to the root module of the crate:Or, as
foo
may be used repeatedly, you coulduse
it in the module:For test modules, it's also common to import everything from the parent module: