2011-12-21 85 views
2

我有一個單元測試,我想寫一個將XML作爲字符串的函數。這是一個doctest,我希望XML與測試一致。由於XML是多行的,我在doctest中嘗試了一個字符串字面值,但沒有成功。下面就簡單的測試代碼:包含字符串文字的Doctests

def test(): 
    """ 
    >>> config = \"\"\"\ 
    <?xml version="1.0"?> 
    <test> 
    <data>d1</data> 
    <data>d2</data> 
    </test>\"\"\" 
    """ 

if __name__ == "__main__": 
    import doctest 
doctest.testmod(name='test') 

我得到的錯誤是

File "<doctest test.test[0]>", line 1 
     config = """ <?xml version="1.0"?> 
              ^
    SyntaxError: EOF while scanning triple-quoted string 

我已經嘗試了許多組合和似乎無法得到這個工作。無論是這個還是我得到的「不一致的領先whitepsace」錯誤。有什麼建議麼?我使用的是Python 2.4(不,沒有升級的可能性)。

+3

你有沒有試圖把在'...'延續提示交互式shell使用? – 2011-12-21 17:13:51

+1

我沒有python2.4來測試,但是使用三個'''來避免\「位和添加」...「前綴對我有用 – DSM 2011-12-21 17:16:23

+0

你有沒有可用的例子?我不知道你是怎麼做到的,我在「......」和「'」上嘗試了幾次,但都沒有成功, – shadowland 2011-12-21 17:37:15

回答

10

此代碼:

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')