2011-12-21 3 views
2

XML을 문자열로 사용하는 함수에 대해 쓰고 싶은 단위 테스트가 있습니다. 그것은 Doctest이고 XML을 테스트에 맞게 사용하고 싶습니다. XML이 여러 줄이기 때문에 doctest 내에서 문자열 리터럴을 시도했지만 성공하지는 못했습니다. 여기에 단순화 된 것 테스트 코드 : 내가 얻을문자열 리터럴을 포함하는 Doctest

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 

입니다. 내가 얻는 것은이 오류 또는 "일관성없는 선도적 인 백색 왜곡"오류입니다. 어떤 제안? 저는 파이썬 2.4를 사용하고 있습니다 (아니, 업그레이드 가능성이 없습니다).

+3

은 당신이 퍼팅 시도 되세요'...'계속 그 대화 형 쉘 사용하라는 메시지가? –

+1

python2.4를 테스트 할 필요가 없지만 세 개의 아포스트로피를 사용하여 \ "비트를 피하고"... "접두사를 추가하면 효과가 있음 – DSM

+0

예제가 작동합니까? 당신이 그것을하고있는 방법을 꽤 보지 못했습니다. "..."과 " ''에서 여러 시도를 시도했지만 성공하지 못했습니다. – shadowland

답변

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') 
관련 문제