Pytest 在 Poetry 项目中找不到我的测试(VSCode 找到)

Pytest does not find my tests in Poetry project (VSCode finds)

我刚刚使用常用的 poetry new mypackage 命令使用 Poetry 创建了我的第一个 Python 包。我的问题是当我 运行 时 pytest 不执行任何测试。我正在使用 VSCode 进行开发,奇怪的是 VSCode 成功找到并执行了我的测试。

Poetry 创建了一个名为 mypackage 的子目录和另一个名为 tests 的子目录。我的测试文件名为 tests/test_mypackage.py.

VSCode 自动发现测试,并将它们显示在测试选项卡中。 .vscode/settings.json 文件具有以下配置:

"python.testing.pytestArgs": [
        "tests"
    ],

我尝试了以下命令来执行 pytest:

  1. 手动激活我的 venv:
    1. pytest
    2. pytest tests
    3. pytest tests/test_mypackage.py
    4. cd tests;pytest test_mypackage.py
  2. 没有激活我的 venv:
    1. poetry run pytest
    2. poetry run pytest tests

行为总是一样的:没有任何反应,就好像 pytest 无法检测到任何 运行。

我一直在使用VSCode来运行测试,但现在我想把代码放在持续集成下。我如何 运行 pytest 来验证我的包?

更新:在 运行 时,在虚拟环境中,pytest 不打印任何输出,但其 return 代码为 1。

pytest从激活的虚拟环境中还是不行,但是我发现我可以执行它运行ning:

poetry run pytest 

我仍然不明白为什么直接从命令行 运行 找不到测试。