Python PyTest没有发现新的测试模块,但在旧测试模块中所做的更改会反映在执行中
(此问题已解决,即使没有人提交答案,也请阅读底部的编辑) 我正在使用PyTest为一个应用程序编写测试,到今天晚上为止,我有三个测试模块。它们按预期工作,我对它们所做的任何更改都会反映在测试执行中(为了完全确定,我故意使用错误的断言)。然而,今晚我添加了一个新模块(它也从test_uu开始,并且不包含类(因此不适用),它实际上在结构上与另一个测试模块几乎相同),并且无论我做什么,PyTest都拒绝发现它。我正在使用VS代码进行开发,但我也尝试从终端运行pytest,效果相同 建议我尝试Python PyTest没有发现新的测试模块,但在旧测试模块中所做的更改会反映在执行中,python,python-3.x,testing,pytest,Python,Python 3.x,Testing,Pytest,(此问题已解决,即使没有人提交答案,也请阅读底部的编辑) 我正在使用PyTest为一个应用程序编写测试,到今天晚上为止,我有三个测试模块。它们按预期工作,我对它们所做的任何更改都会反映在测试执行中(为了完全确定,我故意使用错误的断言)。然而,今晚我添加了一个新模块(它也从test_uu开始,并且不包含类(因此不适用),它实际上在结构上与另一个测试模块几乎相同),并且无论我做什么,PyTest都拒绝发现它。我正在使用VS代码进行开发,但我也尝试从终端运行pytest,效果相同 建议我尝试rm-rf
rm-rf.cache
,但没有解决任何问题。为了安全起见,我尝试删除了所有的\uuuu pycache\uuuu
文件以及.pytest\u cache
文件,但没有成功。在删除并再次运行pytest
之后,我检查了.pytest\u缓存
文件的内容,并且nodeids
中没有显示任何新的测试。我没有收到任何错误,特别是test\u grader.py
,test\u misc.py
和test\u solution\u optimal.py
工作得非常好。这是哈哈test\u solution\u student.py
是test\u solution\u optimal.py
的精确副本,有一些故意错误的断言,但pytest无论我做什么都不会发现它。另外,tests
目录中的\uuuuuuupycache\uuuuuu
包含一个与test\u solution\u student.py
相对应的.pyc文件,这对我来说很奇怪。我甚至尝试将文件重命名为其他名称,认为发现可能忽略了第二个测试,因为它们都以test\u solution\u
开头,但没有
我只按照建议启用了pytest和autoTestDiscover。。。。也已启用。但是,由于从终端运行pytest不会发现最后一个模块,我怀疑这是我的VS代码设置文件的问题
目录结构:
Top-Level Directory
├── .pytest_cache
│ └── v
├── Grader
│ ├── (Several files to be tested)
│ ├── __init__.py
│ └── __pycache__
├── __pycache__
│ └── globals_store.cpython-37.pyc
├── graphs
│ ├── (Additional irrelevant files)
├── tests
│ ├── __pycache__
│ ├── test_grader.py
│ ├── test_misc.py
│ ├── test_solution_optimal.py
│ └── test_solution_student.py
└── venv
├── bin
├── include
├── lib
└── share
我从顶层目录运行pytest
如果有人能给我一个线索,告诉我还有什么我可以尝试的,那可能会导致测试模块被发现,我将永远欠你的债。我不应该分享这个项目,因为这是我正在创建的家庭作业的一部分,但我正在一个虚拟项目中复制这个问题
编辑:
我“修复”了它;问题在于我复制了
test\u solution\u optimal
文件(复制代码确实让我觉得很好笑,应该知道相信我的直觉,但我不能使用现成的代码,需要进行细微的修改),这导致我重新定义了一个fixture,现在我已将其移动到conftest.py
文件(我是pytest的新手,请原谅)。我现在知道不要复制代码(比如,永远),但我仍然很好奇为什么这会导致一个问题,这就是为什么我选择不将此作为我问题的答案。如果有人可以插话解释,请做我的嘉宾:D好吧……我无法复制这个问题(尝试在虚拟环境中复制测试文件的一个较小的示例)。您是否可以在任何地方共享此项目?或者提供实际复制此项目的文件/代码?您正在运行哪个版本的python和pytest?我假设您尝试删除所有的\uuuuuuPyCache\uuuU
和其他缓存目录(不仅仅在tests目录中)。我不允许共享此项目,因为我正在创建一个家庭作业,将于明年秋天分发给学生,但我将尝试创建另一个有此问题的项目并恢复!非常感谢:DPython版本:3.7.0,pytest版本:4.0.2。事实上,我删除了所有我可以找到的缓存文件,hahaJust使用了您的版本关于python/pytest,仍然是不可行的。我也在mac上。抱歉,无法复制。如果你能得到一个可复制的示例,可以与大家分享,我很乐意提供帮助。