Вы можете либо использовать отладку println!
#[test]
fn test_false() {
println!("This test is not OK");
assert!(1 == 2);
}
, либо использовать макрос подтверждения для предоставления пользовательских сообщений.
#[test]
fn test_complex() {
let a = vec![1, 2];
let b = vec![3, 4, 5];
assert!(a.len() == b.len(), "Mismatch between vec lenghts! ({} - {})", a.len(), b.len());
}
Это приведет к
cargo test
Finished dev [unoptimized + debuginfo] target(s) in 0.00s
Running target/debug/deps/foo-3cf890b7dd22d797
running 3 tests
test test_complex ... FAILED
test test_false ... FAILED
test test_true ... ok
failures:
---- test_complex stdout ----
thread 'test_complex' panicked at 'Mismatch between vec lenghts! (2 - 3)', src/main.rs:21:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
---- test_false stdout ----
This test is not OK
thread 'test_false' panicked at 'assertion failed: 1 == 2', src/main.rs:14:5
failures:
test_complex
test_false
test result: FAILED. 1 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out
error: test failed, to rerun pass '--bin foo'
Примечание: В третьем, хорошем случае также есть println!
, но он не будет отображаться, потому что тест пройден успешно.
В общем, ваши тестовые случаи всегда должны быть настолько просты, что вам не нужно отлаживать ваши тестовые случаи, кроме вашего кода.Но это теория, я думаю:)