После того, как pytest запустит вариант использования, он создаст папку кэша .pytest_cache, которая используется для записи идентификаторов варианта использования и последнего неудачного варианта использования. Нам удобно добавлять параметры -lf и -ff при запуске варианта использования, чтобы быстро запустить последний неудачный вариант использования. –lf, –last-failed Перезапустить только те тестовые случаи, которые не удалось выполнить в прошлый раз (или запустить их все, если они не завершились неудачей) –ff, –failed-first Запустить все тесты, но сначала те, которые не увенчались успехом при последнем запуске (это может привести к повторному тестированию, что приведет к дублированию установки/демонтажа прибора)
pytest -h
Проверьте параметры командной строки, примерно cache Как использовать параметры
> pytest -h
--lf, --last-failed rerun only the tests that failed at the last
run (or all if none failed)
--ff, --failed-first run all tests, but run the last failures first.
This may re-order tests and thus lead to repeated fixture setup/teardown.
--nf, --new-first run tests from new files first, then the rest of the tests sorted by file mtime
--cache-show=[CACHESHOW]
show cache contents, don't perform collection or tests. Optional argument: glob(default: '*').
--cache-clear remove all cache contents at start of test run.
Описание параметра:
--last-failed
Запускать только последний неудачный тестовый пример--failed-first
Запускайте все варианты использования, но первым запускается последний неудачный вариант использования.--new-first
В зависимости от времени подключения файла сначала будут запущены новые тестовые примеры.Случай
def test_01():
a = "hello"
b = "hello"
assert a == b
def test_02():
a = "hello"
b = "hello world"
assert a == b
def test_03():
a = "hello"
b = "hello world"
assert a in b
def test_04():
a = "hello"
b = "hello world"
assert a not in b
После завершения ввода командной строки 2 варианта использования завершатся неудачей и 2 варианта использования будут успешными.
collecting ...
case/test_1.py ✓ 25% ██▌
case/test_1.py ⨯✓ 75% ███████▌
case/test_1.py ⨯ 100% ██████████
После завершения операции А. .pytest_cache
Папка кэша имеет следующую иерархическую структуру
В файле Lastfailed записан последний неудачный тестовый пример.
{
"test_x.py::test_02": true,
"test_x.py::test_04": true
}
Файл nodeids записывает узлы всех вариантов использования.
[
"test_x.py::test_01",
"test_x.py::test_02",
"test_x.py::test_03",
"test_x.py::test_04"
]
Таким образом, вы можете просмотреть каталог кеша с помощью команды pytest –cache-show.
(pytest_env) ➜ apiAutomatic pytest --cache-show
Test session starts (platform: darwin, Python 3.7.6, pytest 6.2.1, pytest-sugar 0.9.4)
rootdir: /Users/jkc/PycharmProjects/apiAutomatic, configfile: pytest.ini
plugins: assume-2.4.2, sugar-0.9.4, rerunfailures-9.1.1, base-url-1.4.2, html-3.1.1, metadata-1.11.0, ordering-0.6, cov-2.10.1, repeat-0.9.1, xdist-2.2.0, forked-1.3.0, allure-pytest-2.8.29
cachedir: /Users/jkc/PycharmProjects/apiAutomatic/.pytest_cache
------------------------------------------------------------------------------------------------- cache values for '*' -------------------------------------------------------------------------------------------------
cache/lastfailed contains:
{'case/test_1.py::test_02': True, 'case/test_1.py::test_04': True}
cache/nodeids contains:
['case/test_1.py::test_01',
'case/test_1.py::test_02',
'case/test_1.py::test_03',
'case/test_1.py::test_04']
cache/stepwise contains:
[]
Results (0.02s):
--cache-clear используется для очистки содержимого кэша перед запуском тестового примера.
Посмотреть дополнительную документацию по pytest по кешу https://docs.pytest.org/en/latest/cache.html
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/166348.html Исходная ссылка: https://javaforall.cn