如何在单元测试中以编程方式设置target_os?

问题描述

我尝试了以下方法:

fn get_system_extension(&self) -> String {
    if cfg!(target_os = "windows") {
        String::from(".lib")
    } else {
        String::new()
    }
}

mod test {
    #[allow(unused_imports)]
    use super::*;

    use std::env;

    #[test]
    fn get_system_extension_one() -> Result<(),CcrustyError> {
        env::set_var("CARGO_BUILD_TARGET","linux");

        let result = get_system_extension();

        assert_eq!(String::new(),result);

        Ok(())
    }

    #[test]
    fn get_system_extension_two() -> Result<(),CcrustyError> {
        env::set_var("CARGO_CFG_UNIX","");

        let result = get_system_extension();

        assert_eq!(String::new(),result);

        Ok(())
    }
}

根据the documentation可以在文件中进行设置,但是我不知道如何将它们动态链接到测试。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)