Python doctest在\uuuu main\uuuuu.py上失败

Python doctest在\uuuu main\uuuuu.py上失败,python,doctest,Python,Doctest,当被测试文件的名称为\uuuu main\uuuu.py时,Doctest失败。这是预期的行为吗 结果是,在\uuuu main\uuuuuu.py中不能有任何doctest。那么,解决方法是将所有doctested内容移出\uuuu main\uuuuuuuuuuuuuuuuuuuuuuuupy并导入到另一个模块中吗 复制:制作一个内容简单的文件 """ >>> 1+2 3 """ 将该文件命名为除\uuuuu main\uuuuu.py以外的任何名称 python -m

当被测试文件的名称为
\uuuu main\uuuu.py
时,Doctest失败。这是预期的行为吗

结果是,在
\uuuu main\uuuuuu.py
中不能有任何doctest。那么,解决方法是将所有doctested内容移出
\uuuu main\uuuuuuuuuuuuuuuuuuuuuuuupy
并导入到另一个模块中吗

复制:制作一个内容简单的文件

"""
>>> 1+2
3
"""
将该文件命名为除
\uuuuu main\uuuuu.py
以外的任何名称

python -m doctest anything_but_main.py
python -m doctest __main__.py
博士考试顺利通过

将该文件命名为
\uuuu main\uuuu.py

python -m doctest anything_but_main.py
python -m doctest __main__.py
现在doctest崩溃得很惨:

**********************************************************************
File "C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py", line 1812, in __main__.DebugRunner
Failed example:
    runner.run(test)
Expected:
    Traceback (most recent call last):
    ...
    doctest.UnexpectedException: <DocTest foo from foo.py:0 (2 examples)>
Got:
    Traceback (most recent call last):
      File "C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py", line 1329, in __run
        compileflags, 1), test.globs)
      File "<doctest __main__.DebugRunner[15]>", line 1, in <module>
        runner.run(test)
      File "C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py", line 1836, in run
        r = DocTestRunner.run(self, test, compileflags, out, False)
      File "C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py", line 1475, in run
        return self.__run(test, compileflags, out)
      File "C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py", line 1381, in __run
        exception)
      File "C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py", line 1842, in report_unexpected_exception
        raise UnexpectedException(test, example, exc_info)
    UnexpectedException: <DocTest foo from foo.py:0 (2 examples)>
**********************************************************************
1 items had failures:
   1 of  21 in __main__.DebugRunner
***Test Failed*** 1 failures.
**********************************************************************
文件“C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py”,第1812行,位于_umain__;.DebugRunner中
失败示例:
runner.run(测试)
预期:
回溯(最近一次呼叫最后一次):
...
博士测试异常:
得到了:
回溯(最近一次呼叫最后一次):
文件“C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py”,第1329行,正在运行
compileflags,1),test.globs)
文件“”,第1行,在
runner.run(测试)
文件“C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py”,第1836行,正在运行
r=DocTestRunner.run(self、test、compileflags、out、False)
文件“C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py”,第1475行,正在运行
返回自运行(测试、编译、输出)
文件“C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py”,第1381行,正在运行
例外情况)
文件“C:\Users\PERSON\AppData\Local\Continuum\anaconda3\envs\fle\lib\doctest.py”,第1842行,在报告\u意外\u异常中
引发意外异常(测试、示例、exc_信息)
异常情况:
**********************************************************************
1个项目出现故障:
1/21英寸主调试程序
***测试失败***1次失败。

我必须对此进行更多研究,但我的第一个猜测是,这与污染名称空间有关。像这样从命令行调用
doctest
会创建一个
\uuuu name\uuuuu
变量,该变量等于
'\uuu main\uuuuu'
,因此,可能将其作为同名文件上的模块调用会造成一些污染。我必须进一步研究这个问题,但我的第一个猜测是,这与污染名称空间有关。像这样从命令行调用
doctest
会创建一个
\uuuuu name\uuuuuu
变量,该变量等于
'\uuuu main\uuuuuu'
,因此,将其作为同名文件上的模块调用可能会造成一些污染。