Я запускаю pytest в cmd и получаю AssertionError

#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 утверждений:

  1. Определите свои тестовые функции и используйте оператор assertion, используя python assert (что вы уже сделали)
  2. Измените каталоги на каталог, в котором находится .py файл, содержащий ваши тесты
  3. Выполните 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