python-3.x robot框架中的报告目录设置在Visual Studio Code中不占优势

dsekswqp  于 2023-05-02  发布在  Python
关注(0)|答案(1)|浏览(128)

我有一个机器人框架项目,其中包含Robocorp和Visual Studio Code中的语言服务器扩展。我的目的是在使用VSC提供的“运行测试”按钮运行时,在自动创建的带时间戳的目录中获取测试结果。
现在,我在终端中使用以下命令,在自动创建的带时间戳的目录中获取测试结果:

robot --timestampoutputs -d .\reports\YYYY-mm-dd-HH-MM tests.robot

但是当我使用Run按钮时,所有的输出文件都在工作区文件夹中生成,没有时间戳。我尝试将上面使用的参数添加到启动时的运行配置中。json,但它对结果文件没有影响。我使用了以下配置:

"configurations": [
        {
            "type": "robotframework-lsp",
            "name": "Robot Framework: Launch .robot file",
            "request": "launch",
            "cwd": "^\"\\${workspaceFolder}\"",
            "target": "^\"\\${file}\"",
            "terminal": "integrated",
            "env": {},
            "args": [
                "--timestampoutputs",
                "-d",
                "^\"\\${workspaceFolder}\\reports\""
            ]
        }
    ]

我也尝试在机器人中添加相同的参数。yaml文件,这对结果文件没有任何影响。我在机器人中使用了以下设置。yaml文件:

tasks:
  Run all tasks:
    shell: python -m robot --timestampoutputs -d ./reports/ tasks.robot

condaConfigFile: conda.yaml
artifactsDir: reports
PATH:
  - .
PYTHONPATH:
  - .
ignoreFiles:
  - .gitignore

根据公司的安全政策,我不允许运行bat文件。如何解决“运行”按钮创建报表文件的方式与终端发送的手动命令相同?

cpjpxq1n

cpjpxq1n1#

解决方案是向run_robot__main__添加一些行。py文件main方法:

from datetime import datetime

    datestring = datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
    robot_args = args[3:]

    # Always add the listener (because even when not debugging we want
    # to be able to provide output messages for logging as well as
    # information to be show in the `Robot Output` View).
    # 
    robot_args = [
        "--listener=robotframework_debug_adapter.listeners.DebugListener",
        "--listener=robotframework_debug_adapter.listeners.DebugListenerV2",
        "--outputdir=C:/Temp/RobotReports/"+datestring,
    ] + robot_args

文件run_robot__main__。py可以在路径下找到:C:\Users[user]。vscode\extensions\robocorp.robotframework-lsp-x.x.x\src\robotframework_debug_adapter\

相关问题