在python中在哪里放置子包的测试?

AJM*_*eld 5 python testing nested directory-structure package

当一个python模块有多个子包时,这些子包中的特性测试应该放在哪里?

我可以看到两种方法可以做到:

  • test在每个子包中创建一个单独的文件夹并将其测试放在那里。
  • 复制顶层test文件夹中的包层次结构,将每个子包的测试放在相应的文件夹中。

但是,尚不清楚应该首选哪个选项。

对于这样foo安排的包:

foo/
  __init__.py
  bar.py
  baz/
    __init__.py
    baz.py
Run Code Online (Sandbox Code Playgroud)

我把测试放在这里吗?

foo/
  __init__.py
  bar.py
  baz/
    __init__.py
    baz.py
  test/
    __init__.py
    test_bar.py
    baz/
      __init__.py
      test_baz.py
Run Code Online (Sandbox Code Playgroud)

还是这里?

foo/
  __init__.py
  bar.py
  baz/
    __init__.py
    baz.py
    test/
      __init__.py
      test_baz.py
  test/
    __init__.py
    test_bar.py
Run Code Online (Sandbox Code Playgroud)

eag*_*322 1

这里有一个类似的答案:

/sf/answers/1698681981/

但这实际上取决于偏好/风格,或者取决于您用来测试代码的框架。