我有一个由lib和bin条板箱组成的工作区。运行 cargo test --lib
会跳过二进制 crate 。
最佳答案
--bins
和--lib
不是唯一的,您可以同时使用它们,它将在两个类别中运行测试:
$ cargo test --bins
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running target/debug/deps/foo-c982c1477aaaf33d
running 1 test
test test_bins ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
$ cargo test --lib
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
Running target/debug/deps/foo-532806c187f0c643
running 1 test
test test_lib ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
$ cargo test --bins --lib
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
Running target/debug/deps/foo-532806c187f0c643
running 1 test
test test_lib ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/foo-c982c1477aaaf33d
running 1 test
test test_bins ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
测试项目确实具有集成测试,如果未提供目标,则该集成测试会运行:
$ cargo test
Compiling foo v0.1.0 (foo)
Finished dev [unoptimized + debuginfo] target(s) in 0.27s
Running target/debug/deps/foo-532806c187f0c643
running 1 test
test test_lib ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/foo-c982c1477aaaf33d
running 1 test
test test_bins ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/test_foo-79419bfea3135abf
running 1 test
test test_integration ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests foo
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
关于unit-testing - 是否可以仅通过 cargo 测试运行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60037597/