用#![no_std]测试板条箱

时间:2015-01-28 06:14:57

标签: testing rust

我正在为rust中的编程语言实现编写运行时。我打算在这个运行时链接我生成的编译代码,所以我不想依赖std来保持二进制文件的小。问题是,当我尝试cargo test我的运行时,我得到的错误是说std::slice::AsSlice无法找到,我发现一些谷歌搜索是因为某些测试工具需要std库代码。

有没有人对如何测试此代码有任何建议?有没有办法有条件地包含#![no_std]编译指示,即在测试时仍然包含std库?我还尝试创建一个单独的测试包,其中包含std库,extern crate将运行时包放入其中并在那里运行我的测试,但这引入了一系列全新的问题。

2 个答案:

答案 0 :(得分:7)

#[cfg(test)]
#[macro_use]
extern crate std;

#[macro_use]部分是可选的。)

答案 1 :(得分:1)

您可以通过 cfg_attr 有条件地设置 no_std。

Arrays.asList()