ShivaPahwa
ShivaPahwa

Reputation: 53

Robot framework: Is there a way to write dynamic test cases?

I am pretty new to robot framework. I would like to create test cases dynamically without having a input key-value driven approach.

Found some material that suggested the following:

suite = TestSuite('Example suite', doc='...')
tc = TestCase('Example test')
tc.add_step(TestStep('Log', args=['Hello, world!'])
suite.add_test(tc)

I dont see add_step in test case class, Will continue to look around and see if there are any solutions.

Upvotes: 5

Views: 4596

Answers (1)

Bryan Oakley
Bryan Oakley

Reputation: 386342

The TestSuite object has a keywords attribute which itself has a create method which can be used to create new keywords.

The robot framework api documentation gives this example:

from robot.api import TestSuite

suite = TestSuite('Activate Skynet')
suite.resource.imports.library('OperatingSystem')
test = suite.tests.create('Should Activate Skynet', tags=['smoke'])
test.keywords.create('Set Environment Variable', args=['SKYNET', 'activated'], type='setup')
test.keywords.create('Environment Variable Should Be Set', args=['SKYNET'])

The above gives you the same test as if you had written it like this:

*** Settings ***
Library    OperatingSystem

*** Test Cases ***
Should Activate Skynet
    [Tags]    smoke
    [Setup]    Set Environment Variable    SKYNET    activated
    Environment Variable Should Be Set    SKYNET

Upvotes: 4

Related Questions