我正在使用Rust编写一个编程语言实现的运行时。我计划将这个运行时与我生成的编译代码链接起来,因此为了保持二进制文件较小,我不想依赖于std
。
当我尝试用cargo test
测试我的运行时时,我会收到错误提示,说找不到std::slice::AsSlice
。我发现这是因为一些测试工具需要std库的代码。
我该如何测试这段代码呢?是否有一种方法可以有条件地包含#![no_std]
?即在测试时仍然包含std库?我还尝试创建了一个带有std库的单独测试crate,将runtime crate引入其中并在那里运行我的测试,但这引入了一整套新问题。