#python #python-3.x #cmd #pytest
#python #python-3.x #cmd #pytest
Вопрос:
Итак, это код, который я тестирую:
def test_sum():
test_list=[10,20,30,40,50]
result=sum(test_list)
assert result == 150
Ошибка, которую я получаю:
Microsoft Windows [Version 10.0.19041.630]
(c) 2020 Microsoft Corporation. All rights reserved.
C:Users97155>python -m pytest
================================================= test session starts =================================================
platform win32 -- Python 3.7.4, pytest-6.1.2, py-1.9.0, pluggy-0.13.1
rootdir: C:Users97155
collected 0 items / 1 error
======================================================= ERRORS ========================================================
____________________________________________ ERROR collecting test session ____________________________________________
AppDataLocalProgramsPythonPython37libsite-packages_pytestrunner.py:310: in from_call
result = func() # type: Optional[TResult]
AppDataLocalProgramsPythonPython37libsite-packages_pytestrunner.py:340: in <lambda>
call = CallInfo.from_call(lambda: list(collector.collect()), "collect")
AppDataLocalProgramsPythonPython37libsite-packages_pytestmain.py:684: in collect
for direntry in visit(str(argpath), self._recurse):
AppDataLocalProgramsPythonPython37libsite-packages_pytestpathlib.py:570: in visit
yield from visit(entry.path, recurse)
AppDataLocalProgramsPythonPython37libsite-packages_pytestpathlib.py:570: in visit
yield from visit(entry.path, recurse)
AppDataLocalProgramsPythonPython37libsite-packages_pytestpathlib.py:570: in visit
yield from visit(entry.path, recurse)
AppDataLocalProgramsPythonPython37libsite-packages_pytestpathlib.py:566: in visit
entries = sorted(os.scandir(path), key=lambda entry: entry.name)
E PermissionError: [WinError 5] Access is denied: 'C:\Users\97155\AppData\Local\Application Data'
=============================================== short test summary info ===============================================
ERROR - PermissionError: [WinError 5] Access is denied: 'C:\Users\97155\AppData\Local\Application Data'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
================================================== 1 error in 0.27s ===================================================
Я попытался запустить код, используя команды (python -m pytest) и (pytest). Тем не менее, я все еще получаю ту же ошибку.
Комментарии:
1. Пожалуйста, не публикуйте скриншоты с кодом или ошибками: их трудно искать, они могут в конечном итоге исчезнуть, и, в зависимости от размера, он может потреблять много байтов в планах пользователей Интернета. Отредактируйте вопрос и вставьте фактический текст ошибки. Кстати: я только что скопировал код на свой компьютер и успешно выполнил его с помощью
pytest
2. Если я понимаю вашу ошибку, это не имеет никакого отношения к опубликованному вами коду
Ответ №1:
Во-первых, вам следует изучить документацию для библиотеки, которую вы пытаетесь изучить. Документацию для pytest
можно найти здесь .
Вы неправильно выполняете pytest
из командной строки. Есть несколько шагов для выполнения pytest
утверждений:
- Определите свои тестовые функции и используйте оператор assertion, используя python
assert
(что вы уже сделали) - Измените каталоги на каталог, в котором находится
.py
файл, содержащий ваши тесты - Выполните pytest с помощью
pytest test_file.py
Комментарии:
1. D:Python39 >pytest test_sum.py =========================================================================== начинается тестовая сессия =========================================================================== платформа win32 — Python 3.9.0, pytest-6.1.2, py-1.9.0, pluggy-0.13.1 корневой каталог: D:Python39 плагины: cov-2.10.1 собрано 0 элементов ========================================================================== ни один тест не был проведен за 0,03 с ========================================================================= ( Это то, что я получаю)
2. Вы запускаете скрипт изнутри каталога, который содержит
test_sum.py
правильно?3. Да, я запускаю его из того же каталога.
4. И функция
test_sum
test_sum.py
включена?5. да, функция test_sum находится в test_sum.py
Ответ №2:
Причина сбоя pytest заключается в том, что вы запускаете его из корня своего домашнего каталога, а некоторые папки в домашнем каталоге имеют специальные разрешения
когда запускается pytest (без конфигурации / без аргументов), он пытается выполнить рекурсию для обнаружения тестов — это означает, что он попытается посетить каждый файл / папку из вашего рабочего каталога вниз
в вашем случае он пытается указать список 'C:\Users\97155\AppData\Local\Application Data'
, который, как я полагаю, вообще не разрешен в Windows?
Я бы предложил создать подкаталог в вашем домашнем каталоге и работать там внутри, я использую workspace
, например
Отказ от ответственности: Я один из разработчиков ядра pytest