Is it possible to know in custom suite setup keyword which tests from that suite will be executed? Let’s say I want to prepare some files there, one per test. But if the params combination will make only one test case to be executed then I would like in suite setup to prepare a file only for this single test case. How I could do this?
Hi Adrian,
I’ve not seen anything in the documentation that would give that information.
There is however Test setup and teardown might give you what you need, on each test define a Test setup that creates just the file needed for that test.
This could be still the same custom keyword as you have now, just add an argument to specify which file to create and pass that argument when calling the Test setup
Something like this:
*** Test Cases ***
Test Case A
[Setup] Create Data File File A
Do Something
Test Case B
[Setup] Create Data File File B
Do Something
Test Case C
[Setup] Create Data File File C
Do Something
Hope that helps,
Dave.
The listener interface allows you to get notifications about events during execution. Listeners are typically enabled from the command line, but libraries can register them as well. For more information see the User Guide.
I’ve created a python script which returns test cases executed in the current test run and which can be called in suite setup
from robot.api import logger
import sys
class lib(object):
ROBOT_LIBRARY_SCOPE = 'TEST SUITE' # define library scope
ROBOT_LISTENER_API_VERSION = 2 # select listener API
ROBOT_LIBRARY_VERSION = 0.1
def __init__(self):
self.ROBOT_LIBRARY_LISTENER = self # tell the framework that it will be a listener library
self.attributes = None
def _start_suite(self, name, attributes):
self.attributes = attributes
def Get_suite_test_cases(self):
tests = []
for test in self.attributes['tests']:
tests.append(test)
return tests
globals()[__name__] = lib