pytest завершается неудачно, когда проверяется функция Click команда - PullRequest
1 голос
/ 03 апреля 2019

Используя Python 3.6.4, нажмите == 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.

Работает нормально, когда я закомментирую строку @click.command(), конечно.

Как все решают эту проблему, используя их обоих одновременно?

1 Ответ

1 голос
/ 03 апреля 2019

Вы должны использовать 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'

Проверьте соответствующие страницы документа для получения дополнительных примеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...