【问题标题】:Is there a way to execute a teardown function after all tests have been run?有没有办法在所有测试都运行后执行拆卸功能?
【发布时间】:2020-03-23 11:06:21
【问题描述】:

在 Rust 中,有没有办法在使用标准测试库运行所有测试后(即在cargo test 末尾)执行拆卸功能?

我不希望在每个测试之后运行拆卸功能,因为它们已在这些相关帖子中讨论过:

这些讨论了要运行的想法:

一种解决方法是围绕cargo test 调用的shell 脚本,但我仍然很好奇上述是否可行。

【问题讨论】:

  • 我试过了,但无法让它工作。可能是this 之类的东西?
  • 你可以像build.rs那样做一个脚本,你可能必须配置一个配置文件
  • 你是对的,析构函数不是针对静态变量运行的——参见stackoverflow.com/questions/48732387/…
  • 有一个公认的实验性 RFC 允许自定义测试框架 - 请参阅 this tracking issue。这将为测试带来更大的灵活性,但不幸的是,这方面还没有太大进展。
  • 作为@SvenMarnach,我认为除非实施此RFC,否则无法解决此问题。如果您使用 nightly 编译器,您可以使用少数已实现的 AFAIK 来做到这一点

标签: unit-testing testing rust integration-testing teardown


【解决方案1】:

除了“可能是构建脚本”之外,我不确定是否有办法使用 Rust 的内置测试功能 previous inquiries seem to have yielded little 进行全局(“会话”)拆卸。第三方测试系统(例如闪亮或不锈钢)可能有该选项,但可能值得研究它们的确切功能

或者,如果每晚适合there's a custom test frameworks feature being implementedyou might be able to use for that purpose

除此之外,您可能想查看macro_rules! 来清理一些样板,这就是像burntsushi 这样的人所做的e.g. in the regex package

【讨论】:

    猜你喜欢
    • 2013-09-04
    • 1970-01-01
    • 2015-01-09
    • 2022-06-15
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    相关资源
    最近更新 更多