How to run specific test cases from a test suite using Robot Framework

Question:

I am new to Robot and am learning to write logic and test cases.

I have a test suite, "mytestsuite.robot", which has a lot of test cases. I have a couple of errors in one of my test cases.

How do I run just that specific test case since I don’t want to run the whole test suite again?

File mytestsuite.robot

testcase1
....
....
testcase2
....
....
testcase3
....
....
testcase4
....
....

Say test case 3 failed, and I want to just rerun test case 3.

I tried to use:

pybot mytestsuite.robot -t testcase3

But I get an error.

Asked By: Mysterio Man

||

Answers:

You want to use the option -t or --test, but the option goes before the name of the file rather than after. This should work:

robot -t testcase1 mytestsuite.robot

The order of the command line arguments is covered in the user guide under a section titled Starting test execution, and is also available at the command line with the --help option (e.g. pybot --help)

Be aware that the specific file name is optional. You could use only:
robot -t testcase1 .

Where “.” means look for all files that contains the specified test. Robot will do the hard work of finding the specific test.

You can use also willcard as * in the begining or finish of the test name, to match easily a test or to run multiple tests.

robot -t “testcase1*” .

Will match all tests that begin with “testcase1” in current folder.

The user guide has a section titled Selecting test cases which covers this subject.

Answered By: Bryan Oakley

If you want to run single test case in Robot Framework, use the below example.

Syntax: robot -t "Test Case Name" Test Suite Name
Example: robot - t "PON Type Test Case" Aquarium_Project.robot

If you want to run all the test cases in Robot Framework, use the below example

Syntax: robot Test Suite Name
Example: robot Aquarium_Project.robot

Answered By: Logan M

If you are using __init__.robot files that have setups and teardowns, you cannot directly call a test from a test file if you have nested directory structures like the following:

|-- foo
    |-- bar.robot

And the bar.robot file has a test case named baz, in this case, you can do the following:

robot --test 'foo.bar.baz' foo

With deeper nesting:

|-- foo
    |-- bar
        |-- baz.robot

robot --test 'foo.bar.baz.*' foo

You can use * (asterisk) to run all test cases in the foo.bar.baz suite.

Answered By: kzh

Late post, but in case someone looks for this in future, you can also use the concept of Tags. With Robot Framework you can tag your test suites and test cases. I will restrict myself to Test-based tags for your question. For rest you can give a read to – https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#tagging-test-cases

In your case:
File mytestsuite.robot

testcase1
...
...
testcase2
...
...
testcase3
[Tags] | temp
...
...
testcase4
...
...

You can add multiple number of tags to any test case. Use the --include (also used as -i) robot option to specify which tag you want to run. In this case:

robot --include temp mytestsuite.robot

OR

robot --i temp mytestsuite.robot
Answered By: Swati Singh
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.