【问题标题】:Multiple bases have instance lay-out conflict in Robot Framework多个基地在机器人框架中存在实例布局冲突
【发布时间】:2021-02-08 17:28:41
【问题描述】:

我正在创建一个新的测试框架,我开始在*.py 文件中实现我自己的功能,但是当我尝试运行测试时,我得到了以下堆栈:

(venv) PLAMWS0024:OAT user$ robot -v CONFIG_FILE:"/variables-config.robot" ./catalog/tests/test1.robot
Traceback (most recent call last):
  File "/Users/user/PycharmProjects/OAT/venv/bin/robot", line 5, in <module>
    from robot.run import run_cli
  File "/Users/user/PycharmProjects/OAT/venv/lib/python3.8/site-packages/robot/__init__.py", line 44, in <module>
    from robot.rebot import rebot, rebot_cli
  File "/Users/user/PycharmProjects/OAT/venv/lib/python3.8/site-packages/robot/rebot.py", line 45, in <module>
    from robot.run import RobotFramework
  File "/Users/user/PycharmProjects/OAT/venv/lib/python3.8/site-packages/robot/run.py", line 44, in <module>
    from robot.running.builder import TestSuiteBuilder
  File "/Users/user/PycharmProjects/OAT/venv/lib/python3.8/site-packages/robot/running/__init__.py", line 98, in <module>
    from .builder import TestSuiteBuilder, ResourceFileBuilder
  File "/Users/user/PycharmProjects/OAT/venv/lib/python3.8/site-packages/robot/running/builder/__init__.py", line 16, in <module>
    from .builders import TestSuiteBuilder, ResourceFileBuilder
  File "/Users/user/PycharmProjects/OAT/venv/lib/python3.8/site-packages/robot/running/builder/builders.py", line 20, in <module>
    from robot.parsing import SuiteStructureBuilder, SuiteStructureVisitor
  File "/Users/user/PycharmProjects/OAT/venv/lib/python3.8/site-packages/robot/parsing/__init__.py", line 380, in <module>
    from .model import ModelTransformer, ModelVisitor
  File "/Users/user/PycharmProjects/OAT/venv/lib/python3.8/site-packages/robot/parsing/model/__init__.py", line 18, in <module>
    from .statements import Statement
  File "/Users/user/PycharmProjects/OAT/venv/lib/python3.8/site-packages/robot/parsing/model/statements.py", line 453, in <module>
    class Error(Statement, Exception):
TypeError: multiple bases have instance lay-out conflict

我怀疑这是因为在我的一个文件中,我试图从内置功能的 Robot Framework 中获取变量。 我想这是因为我正在尝试使用受保护的方法,但我不确定。

我发现了问题TypeError: multiple bases have instance lay-out conflict,它表明命名约定可能不匹配(或者我错了吗?),但我的项目有点小,所以唯一的选择是机器人看不到该功能自己。

我会错过什么?

一些代码:

测试自己:

*** Settings ***
Documentation     TO BE CHANGED
...               SET IT TO CORRECT DESCRIPTION
Library           ${EXECDIR}/file.py
Library           String

*** Test Cases ***
User can do stuff
    foo bar

from datetime import datetime
from robot.api import logger
from robot.libraries.BuiltIn import _Variables
from robot.parsing.model.statements import Error
import json
import datetime
from catalog.resources.utils.clipboardContext import get_value_from_clipboard

Vars = _Variables()


def foo_bar(params):
    # Get all variables
    country = get_value_from_clipboard('${COUNTRY}')
    address = get_value_from_clipboard('${ADDRESS}')
    city = get_value_from_clipboard('${CITY}')
    postcode = get_value_from_clipboard('${POSTALCODE}')

并调用 Vars:

from robot.libraries.BuiltIn import _Variables
from robot.parsing.model.statements import Error
Vars = _Variables()


def get_value_from_clipboard(name):
    """
    Returns value saved inside variables passed in Robot Framework
    :param name: name of the variable, needs to have ${} part
            as example: ${var} passed in config file
    :return: value itself, passed as string
    """
    try:
        return Vars.get_variable_value(name)
    except Error as e:
        raise Error('Missing parameter in the clipboard, stack:' + str(e))

【问题讨论】:

    标签: python-3.x robotframework


    【解决方案1】:

    解决了什么问题:

    • requirements.txt 文件中卸载所有要求,并一一安装。

    我尝试的其他步骤:

    • 逐一注释掉所有文件并仅运行robot 命令 - 失败,出现相同错误
    • 已清理 vnenv,如下所述:How to reset virtualenv and pip?(失败)
    • 检查是否有任何变量具有与python3.8/site-packages/robot/parsing/model/statements.py 中所述相同的命名 - 无

    所以看起来 PyCharm IDE 在安装要求方面存在一些冲突

    【讨论】:

      猜你喜欢
      • 2018-06-16
      • 2019-04-03
      • 2018-04-01
      • 2022-01-18
      • 2021-06-10
      • 2014-09-05
      • 2018-04-25
      • 1970-01-01
      • 2016-04-16
      相关资源
      最近更新 更多