在 Robot Framework 中使用关键字驱动方法执行测试用例时显示错误

Shows error when executing test case using keyword driven approach in Robot Framework

我是机器人框架自动化的新手 testing.I 使用 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 模块的名称有问题。

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

Library QuizLibrary.py

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

class quizlibrary(object):

此外,不要忘记在 "Library" 和库名称之间至少有 2 个空格。