首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试子模块真的可以减少锈蚀中的代码膨胀吗?

测试子模块真的可以减少锈蚀中的代码膨胀吗?
EN

Stack Overflow用户
提问于 2016-10-26 20:39:02
回答 1查看 271关注 0票数 2

“锈书”中的第5.2节测试

tests模块允许我们将所有测试组合在一起,如果需要,还可以定义助手函数,这些函数不会成为机箱其余部分的一部分。只有在当前试图运行测试时,cfg属性才会编译测试代码。这可以节省编译时间,并确保我们的测试完全被排除在正常构建之外。

我假定标记为#[test]的函数不会出现在版本构建中,即使它们出现在一个模块中,对吗?我希望它只是一个测试助手函数,可能会浪费空间。它们可以单独与#[cfg(test)]一起隐藏,对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-26 20:54:08

是的,您可以使用#[cfg(test)]隐藏单个函数,并且在非测试构建中将剥离#[test]函数(请注意,您也可以在发布模式下进行测试!)是的,在发行版中,未使用的函数将被优化。然而:

  • 向模块中添加单个#[cfg(test)]比在每个测试中添加它更容易(因此更有可能完成)。
  • 编译时差仍然适用。在版本构建中,当未使用的函数被剥离时,已经对它们进行了分析、类型检查和优化,然后才被删除。在编译过程的早期抛出函数的源代码会更快。
  • 非测试调试构建也很重要--在那里,未使用的函数也不会被删除。
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40271711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档