在测试/test.rs文件中无法识别在src/main.rs中定义的类型,这是因为测试文件和主文件是分开编译的,测试文件无法直接访问主文件中的私有类型和函数。为了解决这个问题,可以在主文件中使用pub
关键字将需要在测试文件中使用的类型和函数标记为公共的,以便测试文件可以访问到它们。
另外,还可以使用模块的方式来组织代码,将需要在测试文件中使用的类型和函数放在一个公共的模块中,并在测试文件中引入该模块。这样测试文件就可以访问到主文件中定义的类型和函数了。
举例来说,假设在src/main.rs中定义了一个名为MyType
的类型,我们想在测试文件中使用它。可以按照以下步骤进行操作:
MyType
标记为公共的,可以使用pub
关键字:pub struct MyType { ... }
。pub
关键字:pub fn my_function() { ... }
。use crate::main::*;
。这里的main
是指src/main.rs文件所在的模块。let my_type = MyType::new();
。需要注意的是,测试文件和主文件需要在同一个包(crate)中,即它们应该在同一个目录下,并且在同一个包的根目录下有一个名为lib.rs
或main.rs
的文件作为入口文件。
推荐的腾讯云相关产品:腾讯云函数(云原生无服务器计算服务),详情请参考腾讯云函数产品介绍。腾讯云函数提供了无服务器的计算能力,可以方便地进行函数级别的测试和部署。
领取专属 10元无门槛券
手把手带您无忧上云