在机器人框架中如何在执行期间记录到控制台

In Robot framework how to log to console during execution

我实际上是在尝试 运行 来自用 java(RF 3.0.2,Jython 2.7.1rc3)编写的导入测试库的关键字

import org.apache.log4j.Logger;

public class Sample
{
private static final Logger logger = Utils.getLogger(Sample.class);

@RobotKeyword("Print Message")
@ArgumentNames({"message"})
public void printMessage(String message)
   {
    logger.info("I'm inside");
   }
}


import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class Utils
{
    public static final Logger logger = getLogger(Utils.class);

    public static Logger getLogger(Class<?> clazz)
    Logger logger = Logger.getLogger(className.getClass());
    PropertyConfigurator.configure("/src/main/resources/log4j.properties");
    return logger;
}


log4j.properties :

log4j.rootLogger=DEBUG, Stdout, file
log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
log4j.appender.Stdout.Target=System.out
log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.Stdout.layout.conversionPattern=%d %-5p [%t] %F:%L %m%n
log4j.appender.Stdout.ImmediateFlush=true
log4j.appender.Stdout.follow=true

通过此设置,我可以在机器人框架测试报告中看到测试执行后的日志,但如果我可以在测试执行期间看到日志,就好像我正在调用控制台关键字一样,这将非常有帮助。

有办法做到这一点吗?

您可以使用侦听器接口http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-interface 获取实时执行信息。在文档中有一个示例脚本。

这在 RED Robot Editor 中用于获取执行状态、调试信息等。可以找到源代码: TestRunnerAgent.py