PyTest无法识别多测试文件及测试类的问题求助
解决PyTest无法识别测试文件/测试类的问题
核心问题分析
PyTest识别测试的默认规则很明确,你的无法识别的测试文件违反了其中两条:
- 测试方法必须以
test_开头 - 测试文件必须以
test_开头(或_test.py结尾)
对照你的代码细节:
- 测试方法命名不规范:无法识别的测试文件中,
TestPosts类里的方法名为is_not_contributor,没有以test_作为前缀,PyTest会直接忽略这类方法。 - 文件名大概率不符合要求:你没有给出该文件的名称,但如果它不是以
test_开头(比如叫posts.py或posts_test.py),PyTest不会主动扫描到它。
修复步骤
1. 修正测试方法命名
把测试方法改为test_开头的格式,示例:
@pytest.mark.django_db def test_is_not_contributor(db): nonauthorizedUser = MemberFactory() can_post = nonauthorizedUser.has_perms("post.add_post") assert can_post is False
2. 调整测试文件名
将该文件命名为test_posts.py,和已识别的test_members.py保持一致规范,确保它放在tests目录下(你的配置文件已指定testpaths = tests)。
3. 额外确认
确保测试类TestPosts没有定义__init__方法,你的代码已经满足这一点。
验证修复
完成修改后,直接运行pytest命令,PyTest会自动扫描tests目录下所有符合规范的测试文件、类和方法,构建完整的测试套件。
内容的提问来源于stack exchange,提问作者TheSuperBigL
相关产品推荐
相关产品推荐

