Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 302
ShivaPahwa Avatar asked Jul 03 '17 02:07

ShivaPahwa


1 Answers

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
like image 145
Bryan Oakley Avatar answered Oct 19 '22 00:10

Bryan Oakley