我已经实现了以下方法和单元测试:
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!
从来没有显示在屏幕上。为什么不行?
发布于 2015-04-13 10:14:26
TL;DR
$ cargo test -- --nocapture
使用以下代码:
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum PieceShape {
King, Queen, Rook, Bishop, Knight, Pawn
}
fn main() {
println!("Hello, world!");
}
#[test]
fn demo_debug_format() {
let q = PieceShape::Queen;
let p = PieceShape::Pawn;
let k = PieceShape::King;
println!("q={:?} p={:?} k={:?}", q, p, k);
}
然后运行以下命令:
$ cargo test -- --nocapture
你应该看到
Running target/debug/chess-5d475d8baa0176e4
running 1 test
q=Queen p=Pawn k=King
test demo_debug_format ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured
发布于 2020-09-26 04:36:23
作为mentioned by L. F.,--show-output
是一条必由之路。
$ cargo test -- --show-output
其他显示标志为mentioned in the documentation of cargo test in display-options。
发布于 2016-11-02 13:15:22
要在println!()
中包含打印输出并保留测试结果的颜色,请在cargo test
中使用color
和nocapture
标志。
$ cargo test -- --color always --nocapture
(货运版:每晚0.13.0 )
https://stackoverflow.com/questions/25106554
复制相似问题