首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机器人框架API -使用一个类获取测试套件/子套件结果和测试用例结果

机器人框架API -使用一个类获取测试套件/子套件结果和测试用例结果
EN

Stack Overflow用户
提问于 2020-09-23 13:52:46
回答 1查看 750关注 0票数 0

我有一个带有多个子套件的测试套件。每个子套件中有一个或多个测试用例。例如:

代码语言:javascript
复制
TestSuite
  Subsuite-1
    TestCase-1
    TestCase-2
  Subsuite-2
    TestCase-1
  Subsuite-3
    TestCase-1
    TestCase-2
    TestCase-3

到目前为止,我一直在为套件和测试用例结果使用带有不同类的代码:

代码语言:javascript
复制
from robot.api import ExecutionResult, ResultVisitor


class GetRfSuiteResults(ResultVisitor):
    suite_results = {}

    def visit_suite(self, suite):
        self.suite_results[suite.name] = suite.status


class GetRfTestResults(ResultVisitor):
    test_results = {}

    def visit_test(self, test):
        self.test_results[test.parent,test.name] = test.status

由于它们都继承了相同的ResultVisitor,所以可以使用这样的一个类来获得结果吗?

代码语言:javascript
复制
from robot.api import ExecutionResult, ResultVisitor


class GetRfResults(ResultVisitor):
    suite_results = {}
    test_results = {}

    def visit_suite(self, suite):
        self.suite_results[suite.name] = suite.status

    def visit_test(self, test):
        self.test_results[test.parent,test.name] = test.status

我不知道如何在这个解决方案中访问visit_test

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-24 10:00:18

虽然它提到的是SuiteVisitor,而不是ResultVisitor,但我还是冒昧地猜测它的行为是一样的。来自API文档

扩展SuiteVisitor的访问者可以通过重写适当的visit_x()方法或从任何start_x()方法返回显式False,在一定程度上停止访问。

因此,如果您覆盖visit_suite,它将停止访问那里。

如果您希望有一个获取套件和测试状态的ResultVisitor,您可以尝试这样的方法:

代码语言:javascript
复制
class MyResultVisitor(ResultVisitor):

    def __init__(self):
        self.suite_results = {}
        self.test_results = {}

    def visit_suite(self, suite):
        self.suite_results[suite.name] = suite.status
        for test in suite.tests:
            self.test_results[test.parent,test.name] = test.status
            
        for suite in suite.suites:
            self.visit_suite(suite)
            
        return False

只访问顶级套件,您也可以递归地访问所有子套件及其测试。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64029520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档