I'm in a weird situation where I want to run the integration tests in one target (host) but the binaries of the crate should only be built for a different target (wasm32-unknown-unknown). Compiling the binaries for any non-WASM target leads to a failure. Therefore, when I try to run the integration tests, the build fails because the binaries fail to compile.
Is there a way to make the binaries not compile when building or running the integration tests?
You can target specific integrations tests, such as
tests/foo.rs, by using
--test foo in your
cargo test command.
There is also
--tests which maybe is useful too
EDIT: it looks like
--tests does not change much the behavior, and
--test foo will still try to compile the binaries just in case the integration tests need them.
The only exception to the latter which I could find in the documentation is:
Binaries are automatically built when the test is built, unless the binary has required features that are not enabled.
So I guess your approach could be to have a
wasm feature which is required by the
binaries? Users would thus have to use
cargo r --features wasm when trying to run the binaries.
Another approach, which usually scales better, is when the
binaries of a Cargo package become a bit too limited, to just have extra packages to handle them with more fine-grained control.
cargo new wasm-binaries --bin
cargo add "your-package" --path ..
- You would then have the code of your binaries under
- and would have to add
-p wasm-binaries to run them.
This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.