2014-11-05 5 views
5

클릭하면 귀하의 응용 프로그램에 대한 좋은 명령 줄 인터페이스를 만들기위한 python 패키지입니다. 나는 약간의 클릭으로 놀았고 오늘은 github에이 simple 로마 숫자 변환기를 밀어 넣었다.테스트 클릭 파이썬 응용 프로그램

내가 지금하고 싶은 것은 클릭 응용 프로그램을 테스트하는 것입니다. 설명서를 읽고 있지만 테스트 실행 방법을 모릅니다.

클릭 응용 프로그램 테스트 경험이있는 사람이 있습니까? test_greet.py에 아래의 코드를 넣는

+0

따라서 테스트를 toroman.py에 넣고 실행하십시오? 시도했지만 작동하지 않습니다. – jetbird13

+0

문서의 [Testing] (http://click.pocoo.org/3/testing/) 장에서 테스트를 click.testing.CliRunner를 사용하는 별도의 스크립트로 작성할 수있는 것처럼 보입니다. 다른 Python 스크립트와 동일한 스크립트를 실행하여 테스트를 실행하십시오. 그 중 어떤 부분이 혼란 스럽습니까? 어디서 붙어 있니? – abarnert

+0

예, 테스트를 포함하고있는 python 파일을 실행할 때 통과했는지 실패했는지 알려주지 않습니다. – jetbird13

답변

3

: 간단하게 테스트를 통과 python test_greet.py 호출하고 아무것도 표시되지 않는 경우

import click 
from click.testing import CliRunner 

def test_greet(): 
    @click.command() 
    @click.argument('name') 
    def greet(name): 
     click.echo('Hello %s' % name) 

    runner = CliRunner() 
    result = runner.invoke(greet, ['Sam']) 
    assert result.output == 'Hello Sam\n' 

if __name__ == '__main__': 
    test_greet() 

. 테스트 프레임 워크에서 사용될 때 예상대로 수행됩니다. 예를 들어 nosetests test_greet.py (가) 주장에 대한

. 
---------------------------------------------------------------------- 
Ran 1 test in 0.002s 

OK 
+1

이 예제 함수는'nose' 나'pytest'와 같은 테스트 프레임 워크에 포함 된 경우 예상대로 작동합니다 [click in example] (https://github.com/mitsuhiko/click/blob/master/tests/test_testing.py) – jaimedash

+1

이것은 작은 인라인 함수의 예일뿐입니다. 클릭을 사용하는 스크립트를 테스트하려면 어떻게해야합니까 ?? –

0

pytest이 핸들러가 반환합니다.

기존 스크립트에 대해 테스트를 실행하려면 '가져 오기'해야합니다.

import click 
from click.testing import CliRunner 
from click_app import configure, cli 

def test_command_configure(): 
    runner = CliRunner() 
    result = runner.invoke(cli, ["configure"]) 
    assert result.exit_code == 0 
    assert result.output == 'configure'