我有以下pytest的配置文件:

[pytest] 
filterwarnings = 
    ignore::DeprecationWarning
    ignore::UserWarning 

python_files = 
    test_file_1.py 
    test_file_2.py

log_cli = True 
log_level = INFO 

我使用以下命令在本地运行pytest:

python -m pytest path

并获得输出

====================================================================================================== no tests ran in 24.77s =======================================================================================================

我不敢相信,因为之前,我在终端中得到了以下输出(由于日志(log)记录):

INFO     root:test_file_1.py:40 torch.Size([100, 71])

我注意到,如果我删除pytest.ini中的filterwarnings,我得到的是warnings summary,但不是输出"no test run".

这里到底发生了什么?为什么filterwarnings会导致输出"no test ran"?

推荐答案

pytest期望测试方法以某种方式命名.例如:def test_1():.

如果您只是将python代码放到一个文件中,并用pytest运行它:

import time

time.sleep(2)

你会发现:no tests ran in 2.01s美元.

但是,如果您的文件中有一个以test_开头并以pytest开始运行的方法:

import time

def test_1():
    time.sleep(2)

你会发现:1 passed in 2.01s美元.

因此,如果您希望您的测试被发现,遵循pytest设置的命名约定是很重要的.(有关发现规则的更多信息:https://docs.pytest.org/en/latest/example/pythoncollection.html)

让您的文件从test_开始,让您的方法从test_开始,这样默认的pytest发现规则就可以找到您的测试.

Python-3.x相关问答推荐

IPython似乎已安装但无法运行

使用pybind11时,在sys.exit(0)处成功完成测试后,Python单元测试冻结

CONNEXION.EXCEPTIONS.ResolverError:运行pyz文件时未命名模块

如果行在所有上级索引中都为0,如何删除下级索引行?

Python VS Code 自动导入路径包含 src

以某种方式分割字符串

使用 Fetch 提交表单到 Django 视图

ValueError at /register/ 视图authenticate.views.register_user 未返回HttpResponse 对象.它返回 None 相反

三重奏:为什么频道被记录为使用async with,而不是with?

Pygame 错误地渲染等距图像

无法使用 Python 和 Selenium 检索 href 属性

类型提示和链式赋值以及多重赋值

合并两个numpy数组

Python:遍历子列表

如何从同一文件夹中的模块导入功能?

创建日志(log)文件

Pandas 的 EMA 与股票的 EMA 不匹配?

如果一个失败,如何取消收集中的所有剩余任务?

Asyncio RuntimeError:事件循环已关闭

将 args、kwargs 传递给 run_in_executor