click是一个python包,用于为您的应用程序创建漂亮的命令行界面。我一直在玩点击一下,今天推这个simple罗马数字转换器在github上。testing点击python应用程序
我现在想要做的是测试我的点击应用程序。我正在阅读文档,但不知道如何运行测试。
有没有人有测试点击应用程序的经验?
click是一个python包,用于为您的应用程序创建漂亮的命令行界面。我一直在玩点击一下,今天推这个simple罗马数字转换器在github上。testing点击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()
如果简单地python test_greet.py
称为测试通过,并没有什么表示。在测试框架中使用时,它按预期执行。例如nosetests test_greet.py
返回
.
----------------------------------------------------------------------
Ran 1 test in 0.002s
OK
如果嵌入像“nose”或“pytest”这样的测试框架中,此示例函数可以按预期工作[请参阅点击示例](https://github.com/mitsuhiko/click/blob/master/tests/test_testing.py) – jaimedash 2015-04-21 19:20:03
这只是一个很小的内联函数的例子,我如何测试一个使用点击的脚本? – 2017-07-21 10:02:30
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'
那么把toroman.py中的测试并运行它?我已经尝试过,但不起作用。 – jetbird13 2014-11-05 21:10:56
从文档中的[Testing](http://click.pocoo.org/3/testing/)章节看来,您可以将测试编写为使用'click.testing.CliRunner'的单独脚本,然后您只需运行与其他Python脚本相同的脚本即可运行测试。这是什么部分令人困惑?你卡在哪里? – abarnert 2014-11-05 21:17:52
是的,但是当我运行包含测试的python文件时,我没有得到任何输出来告诉我他们是否通过了测试。 – jetbird13 2014-11-05 21:27:56