Manual testing commands (CI not set up yet).
Quick build (from repo root):
cd client
cargo build --example basic
cargo build --example basic --release --timingsTest examples:
#[js_bindgen_test::test]
fn test_wasm() {}
#[js_bindgen_test::test]
#[ignore = "hah, it works"]
fn test_ignore() {
panic!("kaboom");
}
#[js_bindgen_test::test]
#[should_panic(expected = "kaboom")]
fn test_should_panic() {
panic!("kaboom");
}Wasm tests: Node.js runner (default):
cargo test --target wasm32-unknown-unknownWasm tests: Browser runner (headless):
JBG_TEST_RUNNER=browser cargo test --target wasm32-unknown-unknownWasm tests: Browser server mode (open URL in a browser):
JBG_TEST_RUNNER=server cargo test --target wasm32-unknown-unknownRunner options:
-
JBG_TEST_RUNNER=node-js(run in Node.js) -
JBG_TEST_RUNNER=deno(run in Deno) -
JBG_TEST_RUNNER=browser(run in headless browser, auto detect WebDriver) -
JBG_TEST_GECKODRIVER=<path>(use Firefox) -
JBG_TEST_CHROMEDRIVER=<path>(use Chrome) -
JBG_TEST_MSEDGEDRIVER=<path>(use Edge) -
JBG_TEST_WEBDRIVER_JSON(set WebDriver conf) -
JBG_TEST_WORKER=dedicated|shared|service -
JBG_TEST_RUNNER=server(serve browser runner and print URL) -
JBG_TEST_SERVER_ADDRESS=127.0.0.1:8000(defaults to 8000; falls back to a random port if busy)
List and filter tests:
cargo test --target wasm32-unknown-unknown -- --list
cargo test --target wasm32-unknown-unknown -- --list --format terse
cargo test --target wasm32-unknown-unknown -- some_substring
cargo test --target wasm32-unknown-unknown -- --exact full::test::name
cargo test --target wasm32-unknown-unknown -- --ignoredOther test flags:
cargo test --target wasm32-unknown-unknown -- --no-captureWasm tooling checks:
cd client
wasm-tools print -o examples/basic.wat target/wasm32-unknown-unknown/debug/examples/basic.wasm
wasm-tools validate examples/basic.watShared-memory build (nightly):
cd client
CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUSTFLAGS="-Ctarget-feature=+atomics -Clink-arg=--shared-memory -Clink-arg=--max-memory=4294967296" \
cargo +nightly build --example basic -Zbuild-std=panic_abort,std --release --timingsWasm64 builds (nightly):
cd client
cargo +nightly build --example basic --target wasm64-unknown-unknown -Zbuild-std=panic_abort,std --release --timingscd client
CARGO_TARGET_WASM64_UNKNOWN_UNKNOWN_RUSTFLAGS="-Ctarget-feature=+atomics -Clink-arg=--shared-memory -Clink-arg=--max-memory=17179869184" \
cargo +nightly build --example basic --target wasm64-unknown-unknown -Zbuild-std=panic_abort,std --release --timings