一、修改RIDE源代码:testrunner.py
日志根目录结构:
打开C:\Python39\Lib\site-packages\robotide\contrib\testrunner,找到testrunner.py。
首先与顶部导入datetime,否则RIDE的IDE将无法打开报错。
import datetime
修改代码块def _create_temporary_directory(self)
- 注释的一行代码为RIDE临时存储目录;
- 增加的三行代码是基于当天日期时间创建日志的目录。
修改代码块def run_command(self, command, cwd)
二、生成用例日志文件夹关键字: Common_Test_Setup | ${TEST NAME} | ${OUTPUT DIR}
用例日志文件夹:
三、关键字 Common_Test_Setup 调用 Create Log Path
四、导入库main.py,定义了关键字 Create Log Path
目的:删除已有current目录,建立一个新的软链current到创建的基于当天日期时间的目录。
import os
import sys
class main:
def create_log_path(self, case=None, outputdir=None):
'''Create Case log Directory
Usage: | Create Log Path | caseName | outputDir |
'''
G_TEST_PATH = str(outputdir)
g_log = os.getenv('G_LOG')
print ('=' * 100)
print (G_TEST_PATH)
print ('=' * 100)
# Window code
base = 'f:\\robotframework\\'
os.system('rd -Q ' + '"' + os.path.join(base, 'logs', 'current') + '"')
os.system('mklink /D ' + '"' + os.path.join(base, 'logs', 'current') + '"' + ' ' + '"' + G_TEST_PATH + '"')
#
if case:
case_name = str(case).replace(' ', '_')
print ('case_name:' + case_name)
G_CASE_LOG_PATH = os.path.join(G_TEST_PATH, case_name)
print ('G_CASE_LOG_PATH:' + G_CASE_LOG_PATH)
if not os.path.exists(G_CASE_LOG_PATH):
os.mkdir(G_CASE_LOG_PATH)
os.environ['G_CURRENTLOG'] = str(G_CASE_LOG_PATH)
print ('G_CURRENTLOG:' + os.getenv('G_CURRENTLOG'))
else:
print ('AT_ERROR : Create Log File FAIL!')
print ('AT_ERROR : ' + G_CASE_LOG_PATH + ' has exist!')
else:
print ('AT_ERROR : Create Log File FAIL!')
print ('AT_ERROR : ' + case + ' NOT Exist!')
#linux: login as root
#linux path: /root/robotframework/logs
#linux code
base = os.path.expanduser('~')
os.system('rm -rf ' + os.path.join(base, 'robotframework/logs', 'current'))
os.system("ln -s " + G_TEST_PATH + ' ' + os.path.join(base, 'robotframework/logs', 'current'))
#MAC OS: login as admin
#MAC OS path: /Users/admin/robotframework/logs
#MAC OS code
base = os.path.expanduser('~')
os.system('rm -rf ' + os.path.join(base, 'robotframework/logs', 'current'))
os.system("ln -s " + os.path.join(base, 'robotframework/logs', 'current') + ' ' + G_TEST_PATH)