Python Pytest未在子目录中找到所有测试
我无法让pytest在所有子目录中运行所有测试用例 当我在Python Pytest未在子目录中找到所有测试,python,python-3.x,pytest,Python,Python 3.x,Pytest,我无法让pytest在所有子目录中运行所有测试用例 当我在Project目录中运行pytest-v-s时,它只找到ComponentB中的所有测试用例,而找不到ComponentA测试用例 当我导航到各个组件目录并运行pytest命令时,测试用例运行良好。为什么pytest在顶层运行时会跳过组件a Project/ |____ComponentA/ | |____srcs | |____tests | |__test_A_1.py | |__test_A_2.
Project
目录中运行pytest-v-s
时,它只找到ComponentB
中的所有测试用例,而找不到ComponentA
测试用例
当我导航到各个组件目录并运行pytest
命令时,测试用例运行良好。为什么pytest在顶层运行时会跳过组件a
Project/
|____ComponentA/
| |____srcs
| |____tests
| |__test_A_1.py
| |__test_A_2.py
| .
| .
| .
|____ComponentB/
| |____srcs
| |____tests
| |__test_B_1.py
| |__test_B_2.py
| .
| .
| .
我假设您问题中的文件名只是示例,但请检查您的真实文件名是否符合以下约定: Pytest实现以下标准测试发现:
- 如果未指定参数,则集合从TestPath(如果已配置)或当前目录开始。或者,命令行参数可以在目录、文件名或节点ID的任意组合中使用
- 递归到目录中,除非它们与norecursedirs匹配
- 在这些目录中,搜索通过测试包名称导入的test.*.py或*.*test.py文件
- 从这些文件中收集测试项:
- 类外的测试前缀测试函数或方法
- 测试前缀测试类内的测试前缀测试函数或方法(无init方法)
我假设您问题中的文件名只是示例,但请检查您的真实文件名是否符合以下约定: Pytest实现以下标准测试发现:
- 如果未指定参数,则集合从TestPath(如果已配置)或当前目录开始。或者,命令行参数可以在目录、文件名或节点ID的任意组合中使用
- 递归到目录中,除非它们与norecursedirs匹配
- 在这些目录中,搜索通过测试包名称导入的test.*.py或*.*test.py文件
- 从这些文件中收集测试项:
- 类外的测试前缀测试函数或方法
- 测试前缀测试类内的测试前缀测试函数或方法(无init方法)
您可能需要子目录中的
\uuuuu init\uuuuuuuuuuuuupy
文件。@pylang-如果所有测试文件都有不同的名称,那么在Python3中没有\uuuuuuuuuuuuuuuuuuuuuuuuuuuuy.py
,它应该可以工作。非常奇怪。我不会重现这个问题。你能不能尝试重命名文件夹/文件,看看你是否知道这种情况是在什么情况下发生的(以及什么时候没有发生)@pylang我尝试过添加和删除\uuu init\uuuuuuuuuupy
但没有任何效果。另一件要检查的事情是,如果你有一个类,它也必须遵循约定,例如def Test\u MyClass():
您可能需要子目录中的\uuuu init\uuuuuuuuuy.py
文件。@pylang-如果所有测试文件都有不同的名称,那么在Python3中没有\uuuuuu init\uuuuuuuuuuuy.py
它应该可以工作。非常奇怪。我不会重现这个问题。你能不能尝试重命名文件夹/文件,看看你是否知道这种情况是在什么情况下发生的(以及什么时候没有发生)@pylang我尝试过添加和删除\uuu init\uuuuuuuuuupy
但没有任何效果。另一件要检查的事情是,如果你有一个类,它也必须遵循约定,例如def Test\u MyClass():
非常抱歉,感谢您捕捉到这一点,我提供的代码是一个示例,我使用的是测试发现格式test.*.py。非常抱歉,感谢您捕捉到这一点,我提供的代码是一个示例,我使用的是测试发现格式test.*.py。