Skip to content

Add a Robot Framework configuration source #12

@bollwyvl

Description

@bollwyvl

Elevator Pitch

Allow loading tasks from .robot files.

Motivation

Robot Framework is a human-readable (if quirky) text format written in Python, often used for defining acceptance tests with a large library and tooling ecosystem. It also provides a Task-driven syntax, which is close to supporting the doit task model.

Design Ideas

  • writing
    • use "free metadata" and tags for doitoml configuration
  • parsing
    • use the native data model for parsing
  • running
    • for each task, generate a robot.main invocation that matches just the test of interest
      • inject the whole to_dict back in for task execution
  • reporting
    • offer a place to put output data
# my_tasks.robot
*** Settings ***
Library     Operating System                        # reuse robot things
Library     dodo                                    # load a dodo.py as a module
Metadata    
...    doitoml:prefix          robot           # configure doitoml
       doitoml:paths:input     input.html      # define variables
       doitoml:paths:output    output.html     # can't be lists :_(

*** Tasks ***       # also support templates?
Copy the HTML
    [Documentation]  Hoist this to `doc`
    [Tags]    doitoml::file_dep::input    doitoml::targets::output
    Copy File    @{::input}  @{::output}  # supports lists as variables
    Do Another Thing  @{::input}

*** Keywords ***
Do Another Thing    # create keywords
    [Arguments]  ${value}
    Log   ${value}
    Log   ${::another-ns::thing}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions