我有以下片段:
fn main() {
async_std::task::block_on(async {
let handle_fast = async {
for i in 1..=8 {
println!("fast {}", i);
async_std::task::sleep(std::time::Duration::from_millis(250)).await;
}
()
};
let handle_slow = async {
for i in 1..=4 {
println!("slow {}", i);
async_std::task::sleep(std::time::Duration::from_millis(500)).await;
}
()
};
futures_util::join!(handle_fast, handle_slow)
});
}
#[cfg(test)]
mod tests {
#[test]
fn test() {
async_std::task::block_on(async {
let handle_fast = async {
for i in 1..=8 {
println!("fast {}", i);
async_std::task::sleep(std::time::Duration::from_millis(250)).await;
}
()
};
let handle_slow = async {
for i in 1..=4 {
println!("slow {}", i);
async_std::task::sleep(std::time::Duration::from_millis(500)).await;
}
()
};
futures_util::join!(handle_fast, handle_slow)
});
}
}当我运行main方法时,它按预期的方式工作。但是当从测试中运行时,它不能工作,只会在执行结束时立即打印出来。如何在测试中重现main的行为?
发布于 2020-04-15 01:01:08
cargo test -- --nocapture任务进行得很好。只是测试运行程序“吃掉”了所有的print输出,并在测试通过时隐藏它。
https://stackoverflow.com/questions/61219618
复制相似问题