【问题标题】:Building a Python based Test Runner to execute C based Code构建基于 Python 的测试运行程序以执行基于 C 的代码
【发布时间】:2015-09-22 21:43:46
【问题描述】:

动机是 python 测试运行程序具有类似于 nose 的功能的想法

不同之处在于它能够运行 C 单元测试。我还没有找到类似的东西。 以下是测试运行器的一些要求。

  1. 测试运行者负责运行一系列测试并为所有测试收集结果。
  2. testrunner 应支持多种测试方法(包括自描述、reftest 和脚本)
  3. 必须能够根据清单文件自动加载测试。
  4. 测试运行者必须能够巧妙地订购测试用例
  5. 测试运行程序必须允许以随机顺序重复运行测试
  6. 测试运行程序必须允许完整和部分执行测试
  7. 必须能够创建可在各种平台上运行的测试运行器
  8. 测试运行者必须提供某种方式来输出收集的结果
  9. 测试运行程序必须允许自动和手动收集上下文信息
  10. 测试运行者必须在收集的结果中包含上下文信息
  11. 测试运行者必须支持正负测试
  12. 测试运行者必须支持测试基于时间的信息
  13. 测试运行者必须允许测试自动报告其结果
  14. 测试运行者必须允许人工报告手动测试结果
  15. 测试运行程序必须允许人工运行 reftests
  16. 测试运行者应允许人类对测试结果发表评论
  17. 测试运行程序必须允许在较小的测试上创建测试
  18. 测试运行程序必须可供外部实体和个人使用

【问题讨论】:

    标签: python unit-testing


    【解决方案1】:

    与其自己做这一切(一项艰巨的工作),不如使用py.test?它是一个强大的测试运行器,等等。它开箱即用满足您的大部分要求(嗯,那些很明确的 - 有些对我来说没有多大意义),并且可定制,足以添加您需要的任何东西。

    然而,杀手级功能是他们积极开发并记录了一种方法来精确地做到这一点:Working with non-python tests。那里的例子很少,但API似乎足够强大。事实上,您不会是第一个使用此功能的人(为您提供另一个信息来源)- 有人已经使用它构建了 JavaScript testing framework

    【讨论】:

      【解决方案2】:

      比已经提出的 py.test 更好的解决方案是 PySys System Test Framework,它几乎解决了上述所有问题,并且您可以非常轻松地扩展以实现尚未涵盖的少数问题

      您必须编写一个通用的“执行”方法,将 C 测试作为外部进程启动,然后对一个字符串进行 grep,该字符串通常表明它正在通过。不超过15行代码。

      框架将为您完成其余的工作

      【讨论】:

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