2017-12-28 31 views
0

특정 코드를 평가 한 다음 unittest을 실행 한 다음 테스트가 실패했는지 여부에 따라 do A 또는 BPython : unittest 모듈에서 테스트 결과 변수에 액세스하는 방법

그러나 보통 self.assertEqual (...)은 어딘가에 저장하는 대신 결과 (실패, 오류, 성공)를 표시하는 것으로 보이므로 그 결과에 액세스 할 수 없습니다. unittest의 모듈을 며칠 동안 점검했지만 마술이 어디에서 발생하는지 또는 화면을 읽지 않아도 테스트 결과를 알 수있는 변수가 있으면 알아낼 수 없습니다 (프로그램 만들기 읽고 "오류"또는 "실패"라는 단어가 좋은 해결책처럼 들리지 않음을 찾으십시오.

+0

내가 제대로 이해한다면 단원 테스트 중에 AST를 변경하고 있습니다. 왜 그런지 설명해 주시겠습니까? – georgexsh

+0

[pytest hooks] (https://docs.pytest.org/en/latest/writing_plugins.html)이이 시나리오에서 유용 할 수 있습니다. – georgexsh

+0

소위 "퍼지"를하려고합니까? –

답변

0

pdb를 사용하여이 문제를 디버그 할 수 있습니다. 테스트에서는이 두 행을 추가하여 실행을 중단하고 디버깅을 시작합니다.

import pdb pdb.settrace()

지금 좋은 시험 연습 가끔 만 실패 테스트가 좋은 테스트하지 않습니다, 결정적 테스트 결과를 원한다. 무작위 기능을 조롱하고 발견 한 오류를 포착하는 데이터 세트를 사용하는 것이 좋습니다.

+0

당신의 대답을 이해한다면, 내가 잘못 코딩 한 테스트가 있다고 생각하며 오류의 위치를 ​​알고 싶습니다. 그리고 그렇지 않습니다. 그것은 옳고, 틀릴 수 있고, 또는 구문 적으로 부정확 한 무작위 테스트의 생성자이며 잘못된 테스트 나 잘못된 구문을 무시하여 올바른 테스트를 얻고 싶습니다. 내가 충분히 명확하지 않은 경우 미안 해요, 내가 질문을 편집했습니다. – Carlos

0

조사한 지 얼마되지 않아 [email protected]으로 이메일을 보내어 내 문제에 대한 완벽한 해결책을 얻었습니다. 내가 가진 대답했다 :

난 당신이 문제가 그렇게 유닛 테스트지고가 발생하는 이유는 그 유닛 테스트를 수행하기 위해 작성 것을 물건의 종류 아니에요라고 생각한다. 그런 경우가 있다는 힌트가 될 나에게 보인다 문서에서 이상 : 많은 약 가져온 모듈과 모듈을 사용하여 명령 줄 인터페이스하지만 아무것도에 대한 섹션있다

https://docs.python.org/3/library/unittest.html

.

는 인터넷 검색의 비트는이 조리법을 산출 :

http://code.activestate.com/recipes/578866-python-unittest-obtain-the-results-of-all-the-test/

당신에게 도움이 될 수도 있지만 내가 을 위해 그것을 보증 할 수없는 것처럼 보이는이 도서관 중 하나 교체 포함 보인다 파일. 난 당신이 설명하고 일을한다면 는

(라이브러리의 파일 중 하나를 교체. 내 의견. 파이썬있는 오픈 소스의 요점은 당신이 자신을 위해 을 해킹 할 수 있다는 것입니다 완벽하게 합리적이다)하지만 아마 내 자신의 테스트 코드를 쓸 것입니다. unittest (라이브러리를 변경하는 반대의 종류)에서 유용하다고 생각한 것을 훔칠 수 있습니다. 또는 사용자의 요구가 충분히 간단하여 테스트 코드의 간단한 파일로 충분하다는 것을 알 수 있습니다.

해결책이 없다면, 우리가 얻은 것을 알려주십시오. 좀 더 생각하려고합니다.내 result.py 유닛 테스트에서 모듈을 변경 한 후

감사합니다, 매트

, 나는 시험 (참, 거짓, 또는 오류)의 값에 액세스 할 수 있어요.

대단히 감사합니다. Matt.

P. 내 질문을 편집하여 더 명확하고 불필요한 코드가 없었습니다.