繁体   English   中英

我在 cmd 上运行 pytest 并且我收到 AssertionError

[英]I am running pytest on cmd and i'm getting AssertionError

所以这是我正在测试的代码:

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:\Users\97155>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:\Users\97155
collected 0 items / 1 error

======================================================= ERRORS ========================================================
____________________________________________ ERROR collecting test session ____________________________________________
AppData\Local\Programs\Python\Python37\lib\site-packages\_pytest\runner.py:310: in from_call
    result = func()  # type: Optional[TResult]
AppData\Local\Programs\Python\Python37\lib\site-packages\_pytest\runner.py:340: in <lambda>
    call = CallInfo.from_call(lambda: list(collector.collect()), "collect")
AppData\Local\Programs\Python\Python37\lib\site-packages\_pytest\main.py:684: in collect
    for direntry in visit(str(argpath), self._recurse):
AppData\Local\Programs\Python\Python37\lib\site-packages\_pytest\pathlib.py:570: in visit
    yield from visit(entry.path, recurse)
AppData\Local\Programs\Python\Python37\lib\site-packages\_pytest\pathlib.py:570: in visit
    yield from visit(entry.path, recurse)
AppData\Local\Programs\Python\Python37\lib\site-packages\_pytest\pathlib.py:570: in visit
    yield from visit(entry.path, recurse)
AppData\Local\Programs\Python\Python37\lib\site-packages\_pytest\pathlib.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)运行代码。 但是,我仍然遇到同样的错误。

首先,您应该深入研究您要学习的库的文档。 pytest的文档可以在这里找到。

您没有从命令行正确执行pytest 执行pytest断言有几个步骤:

  1. 定义您的测试函数并使用 python 的assert (您已经完成)使用断言语句

  2. 将目录更改为包含测试的.py文件所在的目录

  3. 使用pytest test_file.py

pytest 在这里崩溃的原因是您从主目录的根目录运行它,并且主目录中的某些文件夹具有特殊权限

当 pytest 启动(无配置/无参数)时,它会尝试递归检测测试——这意味着它将尝试从您的工作目录向下访问每个文件/文件夹

在您的情况下,它会尝试在'C:\\Users\\97155\\AppData\\Local\\Application Data'上列出,我猜这在 windows 上通常是不允许的?

我建议在你的主目录中创建一个子目录并在那里工作,例如我使用workspace


免责声明:我是 pytest 核心开发人员之一

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM