Robot Framework API - как получить пакет и результаты его тестов - PullRequest
0 голосов
/ 17 июня 2020

У меня есть каталог набора тестов, который содержит файлы набора тестов с одним или несколькими тестами. Скажем, это выглядит так:

TestSuite
  Test-1
    Step 1
    Step 2
  Test-2
    Step 1
  Test-3
    Step 1
    Step 2
    Step 3

Я хотел бы проанализировать вывод. xml, чтобы получить такие результаты:

Test-1 | PASS
Test-1 | Step 1 | PASS
Test-1 | Step 2 | PASS
Test-2 | PASS
Test-2 | Step 1 | PASS
Test-3 | PASS
Test-3 | Step 1 | PASS
Test-3 | Step 2 | PASS
Test-3 | Step 3 | PASS

Пока мне удалось получить только набор имена файлов и результаты с использованием этого кода:

from robot.api import ExecutionResult, SuiteVisitor

class PrintSuiteInfo(SuiteVisitor):

    def visit_suite(self, suite):
        print('{} | {}'.format(suite.name, suite.status))

result = ExecutionResult('output.xml')
result.suite.suites.visit(PrintSuiteInfo())

, который дает следующий результат:

Test-1 | PASS
Test-2 | PASS
Test-3 | PASS

Я могу получить имена тестовых случаев и результаты с помощью этого кода:

from robot.api import ExecutionResult, ResultVisitor

class PrintTestInfo(ResultVisitor):

    def visit_test(self, test):
        print('{} | {}'.format(test.name, test.status))

result = ExecutionResult('output.xml')
result.visit(PrintTestInfo())

, но вывод:

Step 1 | PASS
Step 2 | PASS
Step 1 | PASS
Step 1 | PASS
Step 2 | PASS
Step 3 | PASS

, поэтому нет никакого отношения к файлам набора, которые мне нужны для обновления результатов в Jira.

Единственное, что пришло мне в голову, это включить имя файла пакета в каждое имя тестового примера, но я хотел бы узнать больше о robot.api. Я много раз просматривал документацию , но сейчас это для меня недостаточно ясно.

1 Ответ

0 голосов
/ 17 июля 2020

Один из моих коллег помог мне решить эту проблему. Что мне не хватало, так это:

test.parent

или тот, который я понял сам:

test.longname

, который дает следующий результат:

TestSuite.Test-1.Step 1
TestSuite.Test-1.Step 2
...

Это задокументировано здесь .

...