У меня есть проект с несколькими .py
файлами, каждый с doctest
тестовым кодом. Некоторые функции вызывают исключения, которые также ставятся в тупик. Если я запускаю doctest.testmod()
из модуля, чтобы протестировать себя, все работает нормально (см. xx.py
тест ниже).
Но если я вызываю testmod(xx)
из какого-то другого модуля (см. x2.py
ниже),имя модуля добавляется к исключению, и контрольный пример не проходит.
Вот файлы. Это xx.py
:
class MyException(Exception):
pass
def f(a):
"""
>>> f(0)
Traceback (most recent call last):
...
MyException
"""
raise MyException
def main():
import doctest
doctest.testmod()
if __name__ == "__main__":
main()
И это x2.py
:
import xx
import doctest
doctest.testmod(xx)
Это вывод при вызове x2.py
:
**********************************************************************
File "C:\xx.py", line 6, in xx.f
Failed example:
f(0)
Expected:
Traceback (most recent call last):
...
MyException
Got:
Traceback (most recent call last):
File "C:\Users\chris\Anaconda3\lib\doctest.py", line 1329, in __run
compileflags, 1), test.globs)
File "<doctest xx.f[0]>", line 1, in <module>
f(0)
File "C:\xx.py", line 11, in f
raise MyException
xx.MyException
**********************************************************************
1 items had failures:
1 of 1 in xx.f
***Test Failed*** 1 failures.
Как заставить это работать, желательно приятным, питонским способом?