wasm-pack test
wasm-pack test
命令包装了 wasm-bindgen-test-runner CLI,允许您在不同的浏览器中运行 wasm 测试,而无需自己安装不同的 webdrivers。
wasm-pack test --help
路径
wasm-pack test
命令可以接受一个可选的路径参数。
此路径应指向包含 Cargo.toml
文件的目录。如果没有给出路径,则 test
命令将在当前目录中运行。
# Run tests for the current directory's crate
wasm-pack test
# Run tests for a specified crate
wasm-pack test crates/crate-in-my-workspace
配置文件
test
命令接受一个可选的配置文件参数:--release
。
如果没有提供,则将使用调试测试构建。
测试环境
通过传入任何测试环境标志的组合来选择运行测试的位置。
--headless
对于在无头浏览器中运行浏览器测试作为 CI 过程的一部分很有用。
wasm-pack test --node --firefox --chrome --safari --headless
额外选项
test
命令可以直接将额外的选项传递给 cargo test
,即使它们在 wasm-pack 中不受支持。
要使用它们,只需将额外的参数添加到命令的末尾,就像您对 cargo test
一样。
cargo test -h
用于列出您可以传递的所有选项。
仅运行某些测试
在调试特定问题时,您可能会发现自己想运行测试的子集,而不是整个测试套件。
以下是一些如何运行测试子集的示例
# Example directory structure
$ tree crates/foo
├── Cargo.toml
├── README.md
├── src
│ ├── diff
│ │ ├── diff_test_case.rs
│ │ └── mod.rs
│ ├── lib.rs
└── tests
├── diff_patch.rs
└── node.rs
# Run all tests in tests/diff_patch.rs in Firefox
wasm-pack test crates/foo --firefox --headless --test diff_patch
# Run all tests in tests/diff_patch.rs that contain the word "replace"
wasm-pack test crates/foo --firefox --headless --test diff_patch replace
# Run all tests inside of a `tests` module inside of src/lib/diff.rs
wasm-pack test crates/foo --firefox --headless --lib diff::tests
# Same as the above, but only if they contain the word replace
wasm-pack test crates/foo --firefox --headless --lib diff::tests::replace
请注意,您还可以按测试应该运行的位置来过滤测试。例如
# Run all tests which are intended to execute in Node.js
wasm-pack test --node
# Run all tests which are intended to be executed in a browser
wasm-pack test --firefox --headless