从 pycharm 运行 pytest 时获取空测试套件

问题描述 投票:0回答:9

我在从 PyCharm 内部运行 pytest 测试时遇到问题

我在C:\Temp 中名为agents_automation_2 的文件夹中有一个文件x_tests.py,该文件的内容是

import pytest
def test_mytest():
    assert  False

当我运行时,我得到以下输出

C:\Python36-32\python.exe“C:\Program Files\JetBrains\PyCharm 2017.3.2\helpers\pycharm_jb_pytest_runner.py”--路径 C:/Temp/agents_automation_2 使用 C:\Temp gents_automation_2 中的参数 C:/Temp/agents_automation_2 启动 py.test ===============================测试会话开始================== =========== 平台 win32 -- Python 3.6.4、pytest-3.4.2、py-1.5.2、pluggy-0.6.0 根目录:C:\Temp gents_automation_2,ini文件: 插件:xdist-1.22.0、forked-0.2 已收集 0 件物品 ======================== 0.01 秒内没有运行任何测试 ==================== =====

但是,当我从文件夹内的常规 Windows 命令行运行时,测试运行正常

知道可能是什么问题吗?

谢谢!!!

python-3.x pycharm
9个回答
15
投票

您的测试文件的名称不符合默认的 pytest 发现规则。如果您将 x_tests.py 更改为 x_test.py,它将运行测试并按预期失败。请查看此页面,了解有关 pytest 发现规则的更多信息。


4
投票

在我的例子中,测试类包含 init 方法,也会导致空套件。你需要做的是避免编写 init 方法。


1
投票

确保 PyCharm 配置为使用 PyTest。默认情况下它使用单元测试。查看此文档:https://www.jetbrains.com/help/pycharm/choosing-your-testing-framework.html。正确配置 PyCharm 以使用 PyTest 后,例如,当您打开测试文件的上下文菜单时,您将看到类似 Run 'PyTest in ...'


1
投票
  1. 确保您的conftest.py 文件位于同一文件夹中。
  2. 如果您使用固定装置。在类名中添加“Test”关键字(示例= TestClass)
@pytest.mark.usefixtures("setup1")

class TestClass:
      def test_abc(self):
          print("testcase execution")

0
投票

就我而言,我只需从项目中删除

pytest.ini
文件。


0
投票

对于使用 WSL 的用户,问题可能与 WSL 无法访问有关。 如果您在 WSL 上遇到此错误,

Logon failure: the user has not been granted the requested logon type at this computer.

尝试在 PowerShell 中重新启动

vmcompute
服务(以管理员身份运行):

powershell restart-service vmcompute

来源:https://github.com/microsoft/WSL/issues/5401


0
投票

就我而言,我只在启动时更改了测试的类名,这解决了我的问题。


0
投票

我遇到了同样的错误,并发现定义名称没有“test_”,

示例: 错误前: 测试示例2类:

def editProfile(self, dataLoad):
    print(dataLoad)
    print(dataLoad[1])

修复后: 测试示例2类:

def test_editProfile(self, dataLoad):
    print(dataLoad)
    print(dataLoad[1])


0
投票

我也有同样的问题。这是由我的测试的超类中的循环导入引起的。当我尝试直接运行这个超类(它本身没有测试)时,我看到了错误消息。

© www.soinside.com 2019 - 2024. All rights reserved.