Skip to content

Add a Robot Framework configuration source #12

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions