我有一个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)
但是因为它在docstring中它看到了os.path.abspath(作为结果的一部分。
如何制作docstring测试变量的结果?
答案 0 :(得分:2)
你真的需要匹配路径名吗?如果没有,那么只需使用省略号跳过输出的那一部分:
>>> 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