【问题标题】:How to write regression tests for a Rust binary crate?如何为 Rust 二进制包编写回归测试?
【发布时间】:2021-04-25 07:39:09
【问题描述】:

过去有很多类似的帖子1234,但它们似乎都已过时或无关紧要。

我的问题是:如何为 Rust 二进制文件编写回归测试?

我可以在我的src/main.rs 文件中将它们设置为“单元测试”,但这很烦人。理想情况下,它将被设置为

root
|---src
    |---main.rs
    |---foo.rs
    |---bar.rs
|---tests
    |---regress1.rs
    |---regress2.rs

【问题讨论】:

    标签: testing rust


    【解决方案1】:

    两种选择:

    1. 将您的代码拆分为库和二进制文件:src/lib.rssrc/main.rs。然后你就可以编写tests/ 可以加载库部分的测试了。

      如果您特别想利用 tests/ 测试(“集成测试”)本身就是单独的二进制文件这一事实(例如,如果您要测试的代码使用全局变量或系统调用影响全局状态)。

    2. 您可以在二进制代码中编写#[test] 测试,而无需将它们直接放入您的src/main.rs 文件中。只需编写mod tests;mod tests { mod regress1; } 并将您的测试放入src/tests/regress1.rs,然后像往常一样在该文件中编写#[test] 函数。 (或者,如果您真的希望它们位于不同的目录中,请使用 mod 上的 #[path] 属性。)

      此选项允许更快的测试执行,因为测试不是单独的二进制文件,将由 Rust 测试工具在线程中并行运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多