Ski*_*man 9 python automated-tests frameworks robotframework
我有一个调用python方法的机器人框架测试套件.我希望该python方法在不失败测试的情况下将消息返回到控制台.具体来说,我正在尝试计划一个过程.
我可以使用"raise"将消息返回到控制台,但同时未通过测试.
def doSomething(self, testCFG={}):
'''
Do a process and time it.
'''
testCFG['operation'] = 'doSomething'
startTime = time.time()
response=self.Engine(testCFG)
endTime = time.time()
duration = int(round(endTime-startTime))
raise "doSomething took", duration//60 , "minutes and", duration%60, "seconds."
errmsg = 'doSomething failed'
if testCFG['code']: raise Exception(errmsg)
Run Code Online (Sandbox Code Playgroud)
或者我可以使用"打印"将消息返回到日志文件并报告而不会使测试失败,但该信息仅在报告中可用,而不是在控制台中.
def doSomething(self, testCFG={}):
'''
Do a process and time it.
'''
testCFG['operation'] = 'doSomething'
startTime = time.time()
response=self.Engine(testCFG)
endTime = time.time()
duration = int(round(endTime-startTime))
print "doSomething took", duration//60 , "minutes and", duration%60, "seconds."
errmsg = 'doSomething failed'
if testCFG['code']: raise Exception(errmsg)
Run Code Online (Sandbox Code Playgroud)
如果我使用"打印"选项,我得到这个:
==============================================================================
Do Something :: Do a process to a thing(Slow Process). | PASS |
------------------------------------------------------------------------------
doSomething :: Overall Results | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Run Code Online (Sandbox Code Playgroud)
我想要的是这个:
==============================================================================
Do Something :: Do a process to a thing(Slow Process). | PASS |
doSomething took 3 minutes and 14 seconds.
------------------------------------------------------------------------------
doSomething :: Overall Results | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Run Code Online (Sandbox Code Playgroud)
Pek*_*rck 13
由于您使用的是Python,因此您有两种简单的可能性:
把你的信息写到stderr.这些消息都写入Robot的日志文件和控制台.限制是只有在您执行的关键字结束后,消息才会结束到控制台.值得一提的是,这种方法也适用于基于Java的库.
sys.__stdout__用Python 编写消息.机器人只拦截sys.stdout和sys.stderr离开sys.__stdout__(和sys.__stderr__)单独(因为所有表现良好的Python程序应该).这些消息最终只能到控制台,但您也可以将它们写入sys.stdout以将它们也传递给日志文件.
| 归档时间: |
|
| 查看次数: |
6460 次 |
| 最近记录: |