English 中文(简体)
如何在不启动实际测试的情况下在机器人框架中获得测试案例清单?
原标题:How to get test cases list in Robot Framework without launching the actual tests?
I have file test.robot with test cases. How can i get the list of this test cases without activating the tests, from command line or python?
最佳回答
You can check out testdoc tool. Like explained in the doc, "The created documentation is in HTML format and it includes name, documentation and other metadata of each test suite and test case".
问题回答
Robot test suites are easy to parse with the robot parser: from robot.parsing.model import TestData suite = TestData(parent=None, source=path_to_test_suite) for testcase in suite.testcase_table: print(testcase.name)
For v3.2 and up: In RobotFramework 3.2 the parsing APIs have been rewritten, so the answer from Bryan Oakley won t work on these versions anymore. The proper code that is compatible with both pre-3.2 and post-3.2 versions is the following: from robot.running import TestSuiteBuilder from robot.model import SuiteVisitor class TestCasesFinder(SuiteVisitor): def __init__(self): self.tests = [] def visit_test(self, test): self.tests.append(test) builder = TestSuiteBuilder() testsuite = builder.build( testsuite/ ) finder = TestCasesFinder() testsuite.visit(finder) print(*finder.tests) Further reading: Visitor model TestSuiteBuilder class reference
As we know, we have --dryrun flag to get all the tests in xml/html files but we need to parse them to get all test cases. Just to minimize this effort, we have written small utility to parse the xml/html file and get the results in list format. [ Test case one , Test case two ...] You can go through the robot_list documentation here. Example: python -m robot_list.robot_list "$ROBOT_CMD" where, ROBOT_CMD: robot --include tag1 --exclude tag2 --suite suite1 /source/path Note: robot command should be in either single or double quotes




相关问题
Can Django models use MySQL functions?

Is there a way to force Django models to pass a field to a MySQL function every time the model data is read or loaded? To clarify what I mean in SQL, I want the Django model to produce something like ...

An enterprise scheduler for python (like quartz)

I am looking for an enterprise tasks scheduler for python, like quartz is for Java. Requirements: Persistent: if the process restarts or the machine restarts, then all the jobs must stay there and ...

How to remove unique, then duplicate dictionaries in a list?

Given the following list that contains some duplicate and some unique dictionaries, what is the best method to remove unique dictionaries first, then reduce the duplicate dictionaries to single ...

What is suggested seed value to use with random.seed()?

Simple enough question: I m using python random module to generate random integers. I want to know what is the suggested value to use with the random.seed() function? Currently I am letting this ...

How can I make the PyDev editor selectively ignore errors?

I m using PyDev under Eclipse to write some Jython code. I ve got numerous instances where I need to do something like this: import com.work.project.component.client.Interface.ISubInterface as ...

How do I profile `paster serve` s startup time?

Python s paster serve app.ini is taking longer than I would like to be ready for the first request. I know how to profile requests with middleware, but how do I profile the initialization time? I ...

Pragmatically adding give-aways/freebies to an online store

Our business currently has an online store and recently we ve been offering free specials to our customers. Right now, we simply display the special and give the buyer a notice stating we will add the ...

Converting Dictionary to List? [duplicate]

I m trying to convert a Python dictionary into a Python list, in order to perform some calculations. #My dictionary dict = {} dict[ Capital ]="London" dict[ Food ]="Fish&Chips" dict[ 2012 ]="...

热门标签