Получение ошибки фикстуры при использовании pytest-ожидаемого - PullRequest
0 голосов
/ 19 октября 2019

Я читал о pytest-ожидаемо и пробовал код, который они дали в качестве примера

import pytest
def test_func(expect):
    expect('a' == 'b')
    expect(1 != 1)
    a = 1
    b = 2
    expect(a == b, 'a:%s b:%s' % (a,b))

на терминале, который я дал как

py.test test.py

, получая ошибку, как показано ниже

def test_func(expect):
E       fixture 'expect' not found
>       available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, doctest_namespace, monkeypatch, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory
>       use 'pytest --fixtures [testpath]' for help on them.

Нужно ли где-то определять expect? 1011 *

1 Ответ

1 голос
/ 19 октября 2019

Я воспроизвел вашу ошибку локально, а затем нашел документацию по pytest-ожидаемому , из которой получен пример кода.

Я попытался найти исходный код для pytest-expect: что яобнаружена эта проблема GitHub , в которой автор этого пакета прокомментировал: "Кажется, есть два разных пакета" ожидаемых pytest "!"Итак, я подумал, хорошо, так что это просто вопрос подтверждения того, что мы вытащим точную правильную версию пакета, верно?

Возвращаясь к документам, из которых взят пример кода в вопросе, внизу мы видим ссылку на код ожидания Pytest теперь в репозитории GitHub . Этот репо содержит , по-видимому, содержит соответствующее приспособление expect, но README.md указывает, что «Это репо заархивировано. Дальнейшее развитие этой функции перенесено в pytest-check . "

Демонстрационный код, предоставленный для проверки pytest, действительно работает, чтобы разрешить выполнение нескольких" проверок "в одном тесте.

Содержимое test.py

import pytest_check as check


def test_example():
    a = 1
    b = 2
    c = [2, 4, 6]
    check.greater(a, b)
    check.less_equal(b, a)
    check.is_in(a, c, "Is 1 in the list")
    check.is_not_in(b, c, "make sure 2 isn't in list")

Содержимое require.txt

pytest
pytest-check

Выполнить test.py

Сначала pip install -r requirements.txt, а затем запустить pytest test.py.

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