【问题标题】:Does rustdoc generate runnable binaries?rustdoc 会生成可运行的二进制文件吗?
【发布时间】:2016-02-22 07:11:09
【问题描述】:

我正在尝试在 Rust 项目上运行 kcov。这对于常规测试非常有效,但我无法弄清楚如何让它找到文档测试。

rustdoc 是否创建任何我可以传递给kcov 以运行覆盖的二进制文件?

【问题讨论】:

  • 通过快速浏览源代码,我认为答案将是“否”,但我会等着看是否有更多知识渊博的人可以回答。但是,我会质疑基本前提。存在文档中的示例以向您的代码的使用者展示如何以易于理解的方式使用它。它们的执行和验证主要是为了防止示例随着时间的推移而腐烂。我不会将文档测试视为实际验证代码的任何功能,因此我不会将其包含在覆盖率统计中。
  • 是的,我会将 doctest 解释为测试文档,而不是代码。 doctests 的覆盖率隐含 100%,因为它正在测试文档中的所有代码。

标签: rust code-coverage rust-cargo kcov


【解决方案1】:

Rustdoc 在临时目录中编译二进制文件并立即运行它们:

https://github.com/rust-lang/rust/blob/acdd3b9f5a/src/librustdoc/test.rs#L248-L292

我认为TempDir 析构函数会在函数结束时删除临时目录及其内容。似乎没有任何方法可以获取二进制文件以便在 kcov 中运行它们。

【讨论】:

  • 有。你可以截取它们并复制它们,但是写起来很痛苦。
  • 好吧,让我们说没有简单的方法:)
猜你喜欢
  • 1970-01-01
  • 2020-10-06
  • 2014-04-27
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
  • 2011-11-30
  • 1970-01-01
  • 2018-03-20
相关资源
最近更新 更多