Rust 言語の組み込みテスト機構
Rust 言語はコードにテストを埋め込める。test
属性つきの関数がテストケースとなり、 関数が fail するかどうかチェックされる。 fail を期待するときは should_fail
属性を追加する。
// test.rs use std; #[test] fn test_equality() { assert 42 == 42; } #[test] #[should_fail] fn test_inequality() { assert 42 != 42; // fail } fn main(_args: [str]) { std::io::println("This is main()"); }
普通にコンパイルした場合、テストケースは実行されない。
$ rustc test.rs $ ./test This is main()
テストケースをもつソースファイルをコンパイルするとき、コンパイラに --test
フラグを渡すと、テストを実行するバイナリが生成される。
$ rustc --test test.rs $ ./test running 2 tests rust: upcall fail 'Assertion 42 != 42 failed', test.rs:13 test test_equality ... ok test test_inequality ... ok result: ok. 2 passed; 0 failed; 0 ignored