一种方法是使用 Python 的doctest模块。它本质上解析代码,就好像它在 Python REPL 中一样,然后断言输出与该 REPL 中编写的内容匹配。
$ cat foo
>>> a = 'a'
>>> b = 'b'
>>> ab = a + b
>>> ab
'ab'
$ python -m doctest foo
$ cat > bar
>>> a = 'a'
>>> b = 'b'
>>> ab = b + a # oops
>>> ab
'ab'
$ python -m doctest bar
**********************************************************************
File "bar", line 4, in bar
Failed example:
ab
Expected:
'ab'
Got:
'ba'
**********************************************************************
1 items had failures:
1 of 4 in bar
***Test Failed*** 1 failures.