文件測試doctest及常見問題
阿新 • • 發佈:2019-02-15
#!/usr/bin/env python #_*_ coding:utf-8 _*_ author = 'Noiccy' '''description:文件測試''' def fact(n): ''' Calculate 1*2*...*n >>> fact(1) 1 >>> fact(10) 3628800 >>> fact(-1) Traceback (most recent call last): ... ValueError ''' if n < 1: raise ValueError() if n == 1: return 1 return n*fact(n-1) if __name__ == '__main__': import doctest doctest.testmod()
執行後,沒有輸出內容才是正確的!
可能遇到的問題:
一、AttributeError: module 'doctest' has no attribute 'testmod'
報錯原因:儲存的檔名是doctest.py,導致doctest模組被重寫。修改檔名,並刪除檔案目錄下的__pycache__資料夾後,重新執行即可
二、ValueError: line 3 of the docstring for __main__.fact lacks blank after >>>: '>>>fact(1)'
報錯原因:>>>後面有個空格
三、File "E:\LearnPython\doctest1.py", line 14, in __main__.fact
Failed example:
fact(-1)
Exception raised:
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\doctest.py", line 1330, in __run
compileflags, 1), test.globs)
File "<doctest __main__.fact[2]>", line 1, in <module>
fact(-1)
File "E:\LearnPython\doctest1.py", line 20, in fact
raise ValueError()
ValueError
報錯原因:Traceback後面有個空格