测试点击python应用程序

jet*_*d13 7 python python-click

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

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

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

jet*_*d13 7

将以下代码放入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()
Run Code Online (Sandbox Code Playgroud)

如果只是通过python test_greet.py测试传递调用,则不显示任何内容.在测试框架中使用时,它会按预期执行.例如nosetests test_greet.py返回

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

OK
Run Code Online (Sandbox Code Playgroud)

  • 如果嵌入在像`nose`或`pytest`这样的测试框架中,这个示例函数可以正常工作[参见点击示例](https://github.com/mitsuhiko/click/blob/master/tests/test_testing.py) (2认同)