使用Python 3.6.4,Click == 7.0和pytest == 4.4.0。 同时使用Click&pytest时遇到麻烦。
test_foo.py
import unittest
import click
import pytest
@click.command()
def foo():
print(1)
class TestFoo(unittest.TestCase):
def test_foo(self):
foo()
执行pytest test_foo.py::TestFoo::test_foo
时说
Usage: pytest [OPTIONS]
Try "pytest --help" for help.
Error: Got unexpected extra argument
(tests/test_foo.py::TestFoo::test_foo)
为测试方法启用“点击”命令后,所有pytest选项(例如-k
或-m
)均不起作用。
当我注释掉@click.command()
的行时,效果很好。
每个人同时使用时如何解决?
答案 0 :(得分:1)
您应使用ClickRunner
隔离测试中单击命令的执行。您的示例已重做:
import unittest
import click
import click.testing
@click.command()
def foo():
print(1)
class TestFoo(unittest.TestCase):
def test_foo(self):
runner = click.testing.CliRunner()
result = runner.invoke(foo)
assert result.exit_code == 0
assert result.output == '1\n'
查看相关的doc page以获得更多示例。