Python 包含字符串文本的doctest
我想为一个以XML为字符串的函数编写一个单元测试。这是一个doctest,我希望XML与测试一致。因为XML是多行的,所以我在doctest中尝试了字符串文本,但没有成功。下面是简化的测试代码:Python 包含字符串文本的doctest,python,comments,doctest,python-2.4,Python,Comments,Doctest,Python 2.4,我想为一个以XML为字符串的函数编写一个单元测试。这是一个doctest,我希望XML与测试一致。因为XML是多行的,所以我在doctest中尝试了字符串文本,但没有成功。下面是简化的测试代码: def test(): """ >>> config = \"\"\"\ <?xml version="1.0"?> <test> <data>d1</data> <data>d2</da
def test():
"""
>>> config = \"\"\"\
<?xml version="1.0"?>
<test>
<data>d1</data>
<data>d2</data>
</test>\"\"\"
"""
if __name__ == "__main__":
import doctest
doctest.testmod(name='test')
def test():
"""
>>>配置=\“\”\“\
d1
d2
\"\"\"
"""
如果名称=“\uuuuu main\uuuuuuuu”:
进口医生测试
doctest.testmod(name='test')
我得到的错误是
File "<doctest test.test[0]>", line 1
config = """ <?xml version="1.0"?>
^
SyntaxError: EOF while scanning triple-quoted string
文件“”,第1行
config=”“”
^
SyntaxError:扫描三重引号字符串时出现EOF
我尝试了许多组合,但似乎无法使其工作。要么是这一错误,要么是我得到的“不一致的引导whitepsace”错误。有什么建议吗?我正在使用python 2.4(没有,没有升级的可能性)。此代码可以工作,例如,使用python 2.7.12和3.5.2:
def test():
"""
>>> config = '''<?xml version="1.0"?>
... <test>
... <data>d1</data>
... <data>d2</data>
... </test>'''
>>> print(config)
<?xml version="1.0"?>
<test>
<data>d1</data>
<data>d2</data>
</test>
"""
if __name__ == "__main__":
import doctest
doctest.testmod(name='test')
def test():
"""
>>>配置=“”
...
... d1
... d2
... '''
>>>打印(配置)
d1
d2
"""
如果名称=“\uuuuu main\uuuuuuuu”:
进口医生测试
doctest.testmod(name='test')
您是否尝试过输入交互式shell使用的..
延续提示?我没有要测试的python2.4,但在内部使用三个撇号“”,以避免\“位”并添加“…”前缀对我有效。您有没有一个有效的示例?我不太明白你是怎么做的。我尝试了几次“…”和“”,但都没有成功。@DSM,啊,我找到了答案。我发布了一个答案,但是如果你发布了同样的东西,我会把它标记为答案,这样你就可以得到信用。@shadowland:没必要!简单地接受你自己的答案。