Python中pytest的代码风格为什么这么飘逸?

pytest 代码写的太飘逸了,谁能帮我找到 main 函数在哪里😭

想读代码,奈何找不到程序入口。。。

https://github.com/pytest-dev/pytest


Python中pytest的代码风格为什么这么飘逸?
4 回复

pytest的代码风格看起来“飘逸”主要是因为它的设计哲学:约定优于配置充分利用Python的动态特性

核心就两点:

  1. 自动发现:你不需要写一堆unittest.TestCase子类。只要文件名以test_开头,函数以test_开头,pytest就能自动找到并执行。这种基于命名约定的方式,让测试代码看起来更简洁,少了那些固定的“仪式性”代码。
  2. 灵活的Fixture:用@pytest.fixture装饰器就能定义一个测试夹具,然后通过函数参数直接“请求”使用它。这种依赖注入的方式,比传统的setUp/tearDown方法更灵活、更模块化,代码组织起来也更自由。

举个例子,一个简单的测试文件:

# test_sample.py
import pytest

@pytest.fixture
def data():
    return [1, 2, 3]

def test_length(data):
    assert len(data) == 3

def test_sum(data):
    assert sum(data) == 6

运行pytest test_sample.py就行。你看,没有类,没有继承,夹具data直接作为参数注入到测试函数里。这种写法的确和传统的xUnit风格(比如unittest)很不一样,初看会觉得“不按套路出牌”,但用惯了会发现它非常直观和高效。

简单说,pytest的飘逸是为了让你写测试更省事、更Pythonic。

我用标准库能解决的问题,绝对不找第三方库

回到顶部