# Testing in WASI Testing in WASI generall works the same as [testing in Rust](https://doc.rust-lang.org/book/ch11-01-writing-tests.html), but there's an important caveat about failing tests in WASI. The `wasm32-wasi` target for Rust is effectively a `panic=abort` target which has no support for unwinding. Most tests report failure, however by panicking! This means that a failing test will actually abort the whole wasi process, which isn't always a great experience. To compound the problems here Rust's test framework by default captures all output of a panic to print later after all tests have finished executing. If the process aborts on a panic though, nothing ends up getting printed! Instead you'll see something like: ``` $ cargo wasi test ... Running `/code/wasi-hello-world/target/wasm32-wasi/debug/deps/foo-38c031b0dc9ed5bc.wasm` running 1 test test foo ... error: failed to process main module `/code/wasi-hello-world/target/wasm32-wasi/debug/deps/foo-38c031b0dc9ed5bc.wasm` caused by: Instantiation error: Trap occurred while invoking start function: wasm trap: unreachable, source location: @4143a ``` and that's not very helpful! To help with these issues it's recommended to use `--nocapture` which will at least print *some* information. ``` $ cargo wasi test -- --nocapture ... Running `/code/wasi-hello-world/target/wasm32-wasi/debug/deps/foo-38c031b0dc9ed5bc.wasm --nocapture` running 1 test test foo ... thread 'main' panicked at 'assertion failed: `(left == right)` left: `1`, right: `2`', tests/foo.rs:3:5 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace. error: failed to process main module `/code/wasi-hello-world/target/wasm32-wasi/debug/deps/foo-38c031b0dc9ed5bc.wasm` caused by: Instantiation error: Trap occurred while invoking start function: wasm trap: unreachable, source location: @4143a ``` In general testing and wasi isn't great today. It's something we hope to improve over time!