Reputation: 1727
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?
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.
Upvotes: 43
Views: 106446
Reputation: 51
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
Upvotes: 0
Reputation: 385970
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.
Upvotes: 69
Reputation: 105
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
Upvotes: 8
Reputation: 20598
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.
Upvotes: 8