Unit testing 在生锈的单元测试之后,什么是清理的好方法?

Unit testing 在生锈的单元测试之后,什么是清理的好方法?,unit-testing,rust,Unit Testing,Rust,由于测试函数在失败时中止,因此不能简单地在测试函数结束时进行清理 通过使用其他语言测试框架,通常有一种方法可以设置回调,在每个测试函数结束时处理清理 由于测试函数在失败时中止,因此不能简单地在测试函数结束时进行清理 使用RAII并执行放下。它消除了调用任何内容的需要: 运行1个测试 测试总是失败。。。失败 失败: ----总是失败---- 线程“总是失败”恐慌于“否则…”,main.rs:12 注意:使用'RUST_BACKTRACE=1'运行回溯跟踪。 我快融化了!Meeelllttttinn

由于测试函数在失败时中止,因此不能简单地在测试函数结束时进行清理

通过使用其他语言测试框架,通常有一种方法可以设置回调,在每个测试函数结束时处理清理

由于测试函数在失败时中止,因此不能简单地在测试函数结束时进行清理

使用RAII并执行
放下
。它消除了调用任何内容的需要:

运行1个测试
测试总是失败。。。失败
失败:
----总是失败----
线程“总是失败”恐慌于“否则…”,main.rs:12
注意:使用'RUST_BACKTRACE=1'运行回溯跟踪。
我快融化了!Meeelllttttinng!
失败:
总是失败
测试结果:失败。0通过;1次失败;忽略0;0测量

有没有办法做到这一点而不污染源头?有什么框架适合于此吗?@VladyVeselinov您可以在测试函数中声明struct和impl。
struct Noisy;

impl Drop for Noisy {
    fn drop(&mut self) {
        println!("I'm melting! Meeeelllllttttinnnng!");
    }
}

#[test]
fn always_fails() {
    let my_setup = Noisy;
    assert!(false, "or else...!");
}