2009-03-12 7 views
5

지난 몇 개월 동안 nosetests를 사용하여 Python 단원 테스트를 실행했습니다.nosetests 용 GUI가 있습니까

확실히 일을하고 있지만 어떤 테스트가 작동하는지 또는 깨고 있는지 시각적으로 보여주는 것은 좋지 않습니다.

필자는 단위 테스트 상태의 시각적 스냅 샷을 제공하고 상세 오류 메시지를 얻기 위해 드릴 다운 기능을 제공하는 여러 GUI 기반 단위 테스트 프레임 워크를 사용했습니다.

Nosetests는 대부분의 정보를 콘솔에 덤프하여 개발자가 세부 사항을 조사 할 수있게합니다.

어떤 권장 사항이 있습니까?

답변

2

나는 Trac + Bitten을 사용하여 지속적인 통합 작업을 수행 했으므로 상당히 복잡한 설정이었고 RTFM에 많은 시간이 걸렸으며 모든 것을 설정하고 유지했지만 실패한 테스트 및 오류 메시지와 그래프로 멋진 시각적 보고서를 얻을 수있었습니다. 시간이 지남에 따라 실패한 테스트, 필 린트 문제 및 코드 적용 범위에 대해

Bitten은 Trac의 연속 통합 플러그인입니다. 그것은 마스터 - 슬레이브 구조를 가지고 있습니다. 물린 마스터는 Trac과 통합되어 실행됩니다. 물린 노예는 마스터와 통신하는 모든 시스템에서 실행할 수 있습니다. 정기적으로 마스터에게 빌드 작업을 폴링합니다. 보류중인 작업 (누군가 최근에 뭔가를 저지른 경우)이 있으면 master는 개미의 build.xml과 유사한 "빌드 레시피"를 슬레이브에 보내고 슬레이브는 레서피를 따라 결과를 되돌려 보냅니다. 레서피에는 "저장소에서 코드 체크 아웃", "이 쉘 스크립트 실행", "이 디렉토리에서 nosetests 실행"과 같은 명령어가 포함될 수 있습니다. 빌드 보고서와 통계가 Trac에 나타납니다.

4

rednose 플러그인을 사용하여 콘솔을 채울 수 있습니다. 시각적 피드백은 훨씬 뛰어납니다.

0

나는이 질문에 삼년 전에 질문을 받았다, 그러나 나는 현재 내가에 참여 해요 프로젝트에서 함께 일할 nosetests가 좀 더 쉽게 만들 수있는 GUI를 개발하고 있어요 알고있다.

우리의 프로젝트가 만들어 PyQt 사용 인터페이스를 만드는 데 필요한 모든 것을 제공하기 때문에이 GUI로 시작하는 것이 정말 간단합니다. 나는 파이썬으로 오랫동안 일 해왔다.하지만 그립에 쉽게 접근 할 수 있기 때문에 당신이하고있는 일을 안다면 시간이 충분하다면 완벽 할 것이다.

pyuic4 -x interface.ui -o interface.py

을 그리고 당신은 몇 가지 좋은 자습서 PyQt는 here에 대한 느낌을 얻을 수 있습니다

당신은 파이썬 스크립트에 PyQt는 디자이너에서 만든 .UI 파일을 변환 할 수 있습니다. 희망은 누군가를 돕는다 :

0

필자는 내 편집기 옆에있는 두 번째 터미널을 열어 모든 파일을 읽을 때마다 nosetests (또는 모든 테스트 명령 (예 : 일반 오래된 unittest))를 다시 실행하는 루프를 실행하고 싶다. 변경. 그런 다음 편집기 창에서 포커스를 유지하면서 편집기에서 '저장'을 누를 때마다 테스트 출력이 업데이트되는 것을 볼 수 있습니다.

OP가 '드릴 다운'으로 무엇을 의미하는지 모르겠지만 개인적으로 테스트 출력에서 ​​필요한 것은 실패 추적입니다. 물론 테스트가 실패 할 때마다 표시됩니다.

코드 및 테스트가 잘 작성되어있어 대다수의 테스트가 실행되는 데 수 밀리 초 밖에 걸리지 않을 때 특히 효과적입니다.편집이나 디버그 중에 위에서 설명한대로 이러한 빠른 단위 테스트를 루프로 실행 한 다음 커밋하기 직전에 수동으로 실행중인 테스트를 수동으로 실행할 수 있습니다.

수동 배쉬 '시계'를 사용하여 실행 테스트 (그러나 이것은 단지 그 모든 X의 초를 실행합니다. 괜찮지 만, 행복 저를 유지할 수있을만큼 매우 물어되지 않는.)

는 또한 내가 쓴 다시 수 빠른 파이썬 패키지 인 'rerun'은 파일 시스템 변경 사항을 폴링 한 다음 제공 한 명령을 재실행합니다. 변화를위한 폴링은 이상적이지는 않지만 작성하기 쉽고, 완전히 교차 플랫폼이며, 매 0.25 초마다 폴링하라는 말을하면 큰 프로젝트에서도 눈에 띄는 지연이나 시스템로드가 발생하지 않습니다. 예를 들어 파이썬 소스 트리), 그리고 아래 참조 (심지어 복잡한 경우에 작품.) https://pypi.python.org/pypi/rerun/

세 번째 대안은 더 범용를 사용하여 '감시'와 같은 프로그램 '파일 시스템 변경에 대기'하는 것입니다, 그러나 이것은 헤비급 듯 필자의 필요에 따라 파일 시스템 이벤트를 수신하는 솔루션이 예상대로 작동하지 않을 수도 있습니다 (예 : Vim이 tmp를 다른 곳에 저장 한 다음이를 위치로 옮겨 파일을 저장하면 가끔씩 발생하는 이벤트가 당신이 기대하는 것.) 그러므로 '재방송'.

관련 문제