【问题标题】:Shows error when executing test case using keyword driven approach in Robot Framework在 Robot Framework 中使用关键字驱动的方法执行测试用例时显示错误
【发布时间】:2015-04-25 17:03:29
【问题描述】:

我是机器人框架自动化测试的新手。我使用 Python 为简单的测验应用程序编写脚本和库,并遵循关键字驱动的测试用例方法。 我的脚本是:

class Quiz(object):
OPTIONS = 'ab'
count = 0

def __init__(self):
    self._score = 0
    Quiz.count+=1
def score(self, str1):
    if str1 not in self.OPTIONS:
        raise QuizError("Invalid button '%s'." % str1)
    if str1 == 'a' and Quiz.count == 1:
        self._score +=1 
    elif str1 == 'a' and Quiz.count == 2:
        self._score +=1
    elif str1 == 'a' and Quiz.count == 3:
        self._score +=1
    return self._score  


class QuizError(Exception):
pass

库文件:

from quiz import Quiz, QuizError
class QuizLibrary(object):


def __init__(self):
    self._calc = Quiz()
    self._result = 0

def option(self, answer):        
    self._result = self._calc.score(answer)


def result(self, expected):

    if self._result != expected:
        raise AssertionError('%s != %s' % (self._result, expected))

keyword_driven.txt:

*** Settings ***

Library quizlibrary.py

*** Test Cases ***

Quiz Answer

    option    a

    option    b

    option    a

    result    2

它显示以下错误:

Quiz Answer                                                                FAIL |
No keyword with name 'option' found.
----------------------------------------------------------------------------------------
Testcase :: Example test cases using the keyword-driven testing approach.       | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed

谁能帮我解决这个问题?

请告诉我如何以关键字驱动的方式创建用户关键字。

【问题讨论】:

    标签: python robotframework


    【解决方案1】:

    用于关键字库的 Python 模块的名称一定有问题。

    • 如果您的模块名称是 QuizLibrary.py,则在您的测试中更改库导入中的大小写:

    图书馆 QuizLibrary.py

    • 如果您的模块名称是 quizlibrary.py,则将类的名称与此对齐:

    类测验库(对象):

    另外,不要忘记在“图书馆”和图书馆名称之间至少有 2 个空格。

    【讨论】:

    • 模块名称没有问题,但是总是显示“keyword not Found”,请问为什么会出现这个错误?
    • 我在本地复制了您的代码(使用我建议的修复程序)并且可以使其正常工作...因此,如果您仍然有“找不到关键字”,则表示未正确加载库。在日志中,你没有任何关于加载lib的错误信息吗?
    • ya..问题已通过您的建议解决。感谢您的回复
    猜你喜欢
    • 2019-04-03
    • 2013-01-31
    • 2016-12-16
    • 2021-02-05
    • 2022-01-27
    • 2018-10-10
    • 2021-05-03
    • 1970-01-01
    • 2021-07-17
    相关资源
    最近更新 更多