Robotframework侦听器引发“无法访问执行上下文”错误

考特斯特拉

为了支持其他日志记录格式,我开始开发自定义Robotframework Listener使用指南中的示例,我已经能够复制简单的PythonListner示例可以使用以下示例成功运行此示例:

python.exe -m robot.run --listener C:\temp\tiny.py -s Test02.Test C:\temp\Test02

由listener类生成的文件包含已发生的不同事件,并且该功能按预期运行。

将以下行添加到__init__方法时:

BuiltIn().get_variable_value('${SUITE SOURCE}')

收到以下响应:

 failed: Creating instance failed: RobotNotRunningError: Cannot access execution context
Traceback (most recent call last):
  File "C:\temp\tiny.py", line 9, in __init__
    print  repr(BuiltIn().get_variables())
  File "C:\Python27\lib\site-packages\robot\libraries\BuiltIn.py", line 940, in get_variables
    return utils.NormalizedDict(self._variables.current, ignore='_')
  File "C:\Python27\lib\site-packages\robot\libraries\BuiltIn.py", line 2669, in _variables
    return self._namespace.variables
  File "C:\Python27\lib\site-packages\robot\libraries\BuiltIn.py", line 2661, in _namespace
    return self._context.namespace
  File "C:\Python27\lib\site-packages\robot\libraries\BuiltIn.py", line 2656, in _context
    raise RobotNotRunningError('Cannot access execution context')
==============================================================================
Test02
==============================================================================
Test02.Test
==============================================================================
Process Data File                                                     | PASS |
------------------------------------------------------------------------------
Test02.Test                                                           | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Test02                                                                | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output:  C:\temp\output.xml
Log:     C:\temp\log.html
Report:  C:\temp\report.html

测试通过,但未生成文件。此结果已在Python 2.7和Robotframework 3.0和2.8.5上复制。这很奇怪,我需要一些帮助来进一步分析或(理想地)解决此问题。

由于Python类是由Robotframework调用的,所以我不确定如何继续调试它,因此也可以在那里提出建议。无论如何,我都会遇到麻烦,可以使用您的帮助。

布莱恩·奥克利(Bryan Oakley)

您正在尝试BuiltIn()在测试开始之前参考这就是错误的含义Cannot access execution context:测试尚未开始,因此没有执行上下文。简而言之,您无法BuiltIn在测试运行之前访问库的方法

测试开始运行之前,您将必须等待调用该语句。

例如:

class listener:
    ROBOT_LISTENER_API_VERSION = 2

    def start_suite(self, name, attrs):
        self.suite_source = BuiltIn().get_variable_value('${SUITE SOURCE}')

但是,如果您仅需要当前套件的来源,则该信息可在listener方法中找到start_suite

例如:

class MyListener:
    ROBOT_LISTENER_API_VERSION = 2

    def start_suite(self, name, attrs):
        self.suite_source = attrs["source"]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法访问React上下文

步骤侦听器可将失败的步骤添加到执行上下文

如何使用执行上下文将文件名发送给侦听器?

如何访问servlet上下文侦听器中的属性?

注册球衣的上下文侦听器

不变侦听器的XA上下文

错误:在此上下文中无法使用属性或索引器“ CharacterStats.currentHealth”,因为无法访问集合访问器

LINQPad错误:由于其保护级别,无法访问上下文

铁路由器-无法访问多个数据上下文

GraphQL 订阅字段无法访问解析器的上下文

使用Feign RequestInterceptor的无法访问的安全上下文

如何从Java中的ANTLR侦听器上下文获取行号

侦听器从 DialogFragment 获取信息到父 Fragment 的上下文是什么

JavaScript:在创建具有共享值的侦听器的循环期间封装上下文

如何确保上下文侦听器例程在主要退出之前完成?

在Spring中将侦听器添加到servlet上下文

为什么JavaScript类中的事件侦听器会看到旧的上下文变量?

ANTLR4向侦听器发送空上下文属性

添加/删除事件侦听器,同时保留“this”的实例上下文

在点击侦听器回调中获取活动上下文

当前上下文中不存在名称“侦听器”

JOOQ 侦听器:两个查询之间未清理上下文数据

无法访问已处置的对象。导致此错误的常见原因是处理上下文

@ Types / Sequelize错误TS1086:无法在环境上下文中声明访问器

ionic-selectable:错误TS1086:无法在环境上下文中声明访问器

Twillio聊天模块错误TS1086无法在环境上下文中声明访问器

使用上下文层次结构子上下文Bean作为应用程序侦听器的Spring集成测试

Node.js EventEmitter:如何将类上下文绑定到事件侦听器,然后删除此侦听器

刺激控制器:事件被多次监听;如何删除事件侦听器并保留上下文?