次のメソッドと単体テストを実装しました。
use std::fs::File;
use std::path::Path;
use std::io::prelude::*;
fn read_file(path: &Path) {
let mut file = File::open(path).unwrap();
let mut contents = String::new();
file.read_to_string(&mut contents).unwrap();
println!("{}", contents);
}
#[test]
fn test_read_file() {
let path = &Path::new("/etc/hosts");
println!("{:?}", path);
read_file(path);
}
この方法でユニットテストを実行します。
rustc --test app.rs; ./app
これを実行することもできます
cargo test
テストに合格したが、println!
画面に表示されないというメッセージが表示されます。何故なの?
--nocapture
オプションをcargo test
に渡すとのことですが、貨物はこのフラグを認識しません(rustup.shの最新のナイトリーを使用しています)。動作しますか?