-2
Python3에서 단위 테스트를하고 있지만 print()가 작동하지 않는 것 같습니다. Python3 UnitTests : stdout으로 출력하는 방법
python \interpreter.py
단위 테스트를 실행
가, 렉서 내부 인쇄() 문()가 무시됩니다 : 내가 사용 내 코드를 실행import unittest
def lexer(line):
... #Lots of code and print statements here
return tokens
class lexerBasicTestCases(unittest.TestCase):
def Test1(self):
test = "9+4"
output = ["9", "+", "4"]
self.assertEqual(lexer(test), output)
def Test2(self):
test = "9 + 4"
output = ["9", "+", "4"]
self.assertEqual(lexer(test), output)
def Test2(self):
test = "9 + 4"
output = ["9", "+", "4"]
self.assertEqual(lexer(test), output)
def lexerBasicTestSuite():
suite = unittest.TestSuite()
suite.addTest(lexerBasicTestCases('Test1'))
suite.addTest(lexerBasicTestCases('Test2'))
suite.addTest(lexerBasicTestCases('Test3'))
unittest.TextTestRunner(verbosity=2).run(suite)
#Main program
lexerBasicTestSuite()
:
여기 내 코드의 조각이다. 테스트 케이스가 실패하고 분석 할 인쇄 문이 없을 때 이것은 실망 스럽습니다. 디버깅 할 때 단위 테스트를 주석 처리하지 말고 인쇄 문에 대한 테스트를 단독으로 실행하는 대응 함수를 작성하십시오. 인쇄 명세서를 어떻게 인쇄 할 수 있습니까?
StackOverflow에 오신 것을 환영합니다. 도움말 설명서의 게시 지침을 읽고 따르십시오. [최소한의 완전하고 검증 가능한 예제] (http://stackoverflow.com/help/mcve)가 여기에 적용됩니다. MCVE 코드를 게시하고 문제를 정확하게 설명하기 전까지는 효과적으로 도움을 드릴 수 없습니다. 게시 된 코드를 텍스트 파일에 붙여넣고 설명한 문제를 재현 할 수 있어야합니다. 대신 문제 코드를 제거하고 * 불필요한 코드를 유지합니다. – Prune
기능을 인쇄하는 기능을 원하지 않습니다. 당신이 원하는 것은 단위 테스트가 함수로부터 리턴 값을 체크하도록하는 것입니다. 프로덕션 코드를 실행하는 동안 반환 값을 인쇄하는 다른 함수를 쉽게 가질 수 있습니다. 단위 테스트를 실행하는 동안 인쇄는 아니오입니다. – quamrana
로깅 모듈을 사용할 수 있습니다. 도움이 될 수 있습니다. - https://stackoverflow.com/questions/284043/outputting-data-from-unit-test-in-python – Shashank