我在 PyCharm 中使用 pytest (2022.3)。
我只想运行单个测试函数或单个测试文件。
我的项目结构如下所示:
project
-src
-tests
-test_func_a.py
-test_func_b.py
两个测试文件都包含标准 pytest 形式的多个函数,例如:
def test_func_a_smth():
assert x == y
当我尝试运行
test_func_a
时,会创建以下配置:
但是 PyCharm 完全运行所有测试文件。
到目前为止我所做的:
project
且 tests
标记为“测试源根”。这些都没有帮助。
如何只执行单个测试文件?
听起来您在执行单个文件时遇到了问题。 Pycharm 喜欢重新运行最后运行的东西,所以也许你运行了所有测试并且它想继续这样做。 试试这些:
右键单击要在项目目录中运行的各个测试用例的文件名,然后从那里选择“在...中运行测试”
打开包含测试的单个文件,然后在文件中按 ctrl-shift-r(运行此文件)
您还应该看到文件中各个测试旁边的绿色小箭头,您可以单独选择它们。
在运行了几个不同的操作后,如果您想重复,标题栏中运行选项旁边的“下拉”菜单将显示您已完成的不同操作。 我通常只是从我所在的地方使用 ctrl-shift-r。
首先,工作目录要与项目目录相同。
我也有同样的问题。对我有帮助的是修复 pytest.ini_options。我改变了这个:
addopts = " -s --cov=./ --cov-report term-missing tests/ -v"
对此:
addopts = "-s -v --cov=./ --cov-report term-missing"
此后一切正常。