在 Robot Framework 中使用关键字驱动的方法执行测试用例时显示错误
Posted
技术标签:
【中文标题】在 Robot Framework 中使用关键字驱动的方法执行测试用例时显示错误【英文标题】:Shows error when executing test case using keyword driven approach in 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
谁能帮我解决这个问题?
请告诉我如何以关键字驱动的方式创建用户关键字。
【问题讨论】:
【参考方案1】:用于关键字库的 Python 模块的名称一定有问题。
如果您的模块名称是 QuizLibrary.py,则在您的测试中更改库导入中的大小写:如果您的模块名称是 quizlibrary.py,则将类的名称与此对齐:图书馆 QuizLibrary.py
类测验库(对象):
另外,不要忘记在“图书馆”和图书馆名称之间至少有 2 个空格。
【讨论】:
模块名称没有问题,但是总是显示“keyword not Found”,请问为什么会出现这个错误? 我在本地复制了您的代码(使用我建议的修复程序)并且可以使其正常工作...因此,如果您仍然有“找不到关键字”,则表示未正确加载库。在日志中,你没有任何关于加载lib的错误信息吗? ya..问题已通过您的建议解决。感谢您的回复以上是关于在 Robot Framework 中使用关键字驱动的方法执行测试用例时显示错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Robot Framework 中使用关键字驱动的方法执行测试用例时显示错误