我有一个Rust项目,它有几个模块。我已经添加了一个名为测试的模块,在那里我进行了单元测试,但我已经达到了测试需要大量脚手架的程度,我相信这会给代码库带来很多噪音。有没有办法将我的测试移到别处,也许是一个test.rs文件?
答案 0 :(得分:2)
Cargo支持从tests/
子目录运行测试。您可以在Cargo guide中找到对此的引用(尽管相当简短)。简而言之,您可以将测试放在项目的tests/
子目录中的源中,从而将测试与主源树分开。这些测试只是普通的Rust源(带有#[test]
注释),所以你需要extern crate
你的板条箱来测试它们。这支持编写集成测试,而不是单元测试。
单元测试通常用#[cfg(test)]
标记 - 被测模块的子模块标记。他们能够访问其封闭模块的非公共项目,因此这是单元测试的理想选择。
Cargo中还有recent change允许更强大的功能,但我不确定应该如何使用它。