2014-11-05 46 views
5

click是一个python包,用于为您的应用程序创建漂亮的命令行界面。我一直在玩点击一下,今天推这个simple罗马数字转换器在github上。testing点击python应用程序

我现在想要做的是测试我的点击应用程序。我正在阅读文档,但不知道如何运行测试。

有没有人有测试点击应用程序的经验?

+0

那么把toroman.py中的测试并运行它?我已经尝试过,但不起作用。 – jetbird13 2014-11-05 21:10:56

+0

从文档中的[Testing](http://click.pocoo.org/3/testing/)章节看来,您可以将测试编写为使用'click.testing.CliRunner'的单独脚本,然后您只需运行与其他Python脚本相同的脚本即可运行测试。这是什么部分令人困惑?你卡在哪里? – abarnert 2014-11-05 21:17:52

+0

是的,但是当我运行包含测试的python文件时,我没有得到任何输出来告诉我他们是否通过了测试。 – jetbird13 2014-11-05 21:27:56

回答

3

把下面的代码在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() 

如果简单地python test_greet.py称为测试通过,并没有什么表示。在测试框架中使用时,它按预期执行。例如nosetests test_greet.py返回

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

OK 
+1

如果嵌入像“nose”或“pytest”这样的测试框架中,此示例函数可以按预期工作[请参阅点击示例](https://github.com/mitsuhiko/click/blob/master/tests/test_testing.py) – jaimedash 2015-04-21 19:20:03

+1

这只是一个很小的内联函数的例子,我如何测试一个使用点击的脚本? – 2017-07-21 10:02:30

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' 
相关问题