Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyTest没有发现新的测试模块,但在旧测试模块中所做的更改会反映在执行中_Python_Python 3.x_Testing_Pytest - Fatal编程技术网

Python PyTest没有发现新的测试模块,但在旧测试模块中所做的更改会反映在执行中

Python PyTest没有发现新的测试模块,但在旧测试模块中所做的更改会反映在执行中,python,python-3.x,testing,pytest,Python,Python 3.x,Testing,Pytest,(此问题已解决,即使没有人提交答案,也请阅读底部的编辑) 我正在使用PyTest为一个应用程序编写测试,到今天晚上为止,我有三个测试模块。它们按预期工作,我对它们所做的任何更改都会反映在测试执行中(为了完全确定,我故意使用错误的断言)。然而,今晚我添加了一个新模块(它也从test_uu开始,并且不包含类(因此不适用),它实际上在结构上与另一个测试模块几乎相同),并且无论我做什么,PyTest都拒绝发现它。我正在使用VS代码进行开发,但我也尝试从终端运行pytest,效果相同 建议我尝试rm-rf

(此问题已解决,即使没有人提交答案,也请阅读底部的编辑)

我正在使用PyTest为一个应用程序编写测试,到今天晚上为止,我有三个测试模块。它们按预期工作,我对它们所做的任何更改都会反映在测试执行中(为了完全确定,我故意使用错误的断言)。然而,今晚我添加了一个新模块(它也从test_uu开始,并且不包含类(因此不适用),它实际上在结构上与另一个测试模块几乎相同),并且无论我做什么,PyTest都拒绝发现它。我正在使用VS代码进行开发,但我也尝试从终端运行pytest,效果相同

建议我尝试
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上。抱歉,无法复制。如果你能得到一个可复制的示例,可以与大家分享,我很乐意提供帮助。