python - python中的轻量级单元测试

标签 python racket

我正在考虑使用 Python 来教授入门编程,并且我正在寻找一个轻量级的单元测试框架。我查看了 unittest,据我所知,它看起来非常轻量级。

例如,这是我希望能够写的内容:

import unittest

def f(x):
  return x+2

checkEqual(f(3),5)

...没有别的。为了向您展示我的出发点,这就是我用 Racket 的初级学生语言编写的内容:

(define (f x)
  (+ x 2))

(check-expect (f 3) 5)

...就是这样。肯定有人编写了这个工具,但我只是没有找到它?

(提前为任何挑衅的行为道歉。这是一个严肃的问题。)

自编辑:

在任何人指出这一点之前:是的,我可以写 def checkEqual(a,b): print(a==b) ;我正在寻找更多的东西:它应该能够检查带有公差的数字,它应该支持只打印失败的测试用例,它应该能够告诉你有多少测试用例失败了。再一次,我有信心可以编写这段代码;我只是想避免重新发明轮子。

最佳答案

我会推荐 Doctest .

您的示例如下所示:

def f(x):
    """
    >>> f(3)
    5
    """
    return x + 2

为什么?

  1. 非常简单:“当我运行这个东西时,我应该得到这个答案”
  2. 它适用于功能级别 - 这可能允许您甚至在上课之前引入测试
  3. 反射(reflect)交互式 Python 体验。

关于python - python中的轻量级单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10437650/

相关文章:

c# - C#和Python之间的进程间通信

python - 将 Conda 更新到 4.6.1 以集成 PowerShell 后,Conda 无法安装 Conda-forge 软件包

python - 减去相同的两个日期时如何计算为 1 天

macros - 在 Racket 中动态需要阶段 1(for-syntax)变量

scheme - 托管 Racket 网络应用程序?

python - 我可以使用 python 的 pdfminer 从 pdf 中提取亮点吗?

python - 如何在Jupyter Notebook的 'markdown'单元格中获取标签空间

python - 在 SimpleHTTPServer.py 中重定向浏览器?

recursion - 如何修复此代码,我猜是逻辑问题

algorithm - 如何计算列表的特定组合? (对接会)