我有一个doctest,当找不到文件时,它会期望IOError。
>>> configParser('conffig.ini') # should not exist
Traceback (most recent call last):
...
IOError: No such file: /homes/ndeklein/workspace/MS/PyMS/conffig.ini
但是,如果我想从另一台PC上测试它,或者其他人想要测试它,则路径不会是/ homes / ndeklein / workspace / MS / PyMS /。我想做
>>> configParser('conffig.ini') # should not exist
Traceback (most recent call last):
...
IOError: No such file: os.path.abspath(conffig.ini)
但由于它在文档字符串中,因此将os.path.abspath(作为结果的一部分。
如何使docstring测试变量的结果?
最佳答案
您实际上是否需要与路径名匹配?如果不是,则只需使用省略号跳过输出的那部分:
>>> configParser('conffig.ini') # should not exist
Traceback (most recent call last):
...
IOError: No such file: ...
如果这样做,则需要捕获错误并手动测试该值。就像是:
>>> try:
... configParser('conffig.ini') # should not exist
... except IOError as e:
... print('ok' if str(e).endswith(os.path.abspath('conffig.ini')) else 'fail')
ok
关于python - 如何处理python doctest中的变量错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9567437/