Groovy-скрипт, который получает имя TestCase с шагом выполнения TestCase
У меня есть два набора тестов, в первом тестовом наборе у меня есть тестовый набор с шагом "Run TestCase", который будет запускать тестовый набор из второго тестового набора. Я хотел бы, чтобы во втором наборе тестов был отличный сценарий, который предоставит мне имя тестового набора из первого набора тестов.
Примечание: я не могу предоставить эти имена самостоятельно, это должно быть сделано автоматически.
Можно ли получить имя тестового случая, который имеет шаг выполнения TestCase?
2 ответа
Вы можете использовать приведенный ниже код, чтобы заполучить тот шаг, который имеет "шаг выполнения TestCase"
// объяснение:- Получил итератор для TestSuite. Используя этот итератор, пройдя все тестовые случаи, а затем пройдя все этапы тестирования
// затем проверяем, имеет ли какой-либо тестовый шаг это имя "Run TestCase"
Это было вы можете найти шаг теста под этим testuite в любом из тестовых случаев.
for(tc in testRunner.testCase.testSuite.getTestCaseList())
{
for(ts in tc.getTestStepList())
{
if( ts.getName()=="Run TestCase")
{
log.info "Found that step "
log.info "TestCaseName = " + tc.getName()
log.info "TestSuiteName = " + testRunner.testCase.testSuite.getName()
}
}
}
Вы можете выйти на уровень выше на уровне проекта и проверить все комплекты, выполнив внешний цикл
testRunner.testCase.testSuite.project.getTestSuiteList()
В вашей целевой testCase (1b) создайте пользовательское свойство 'caller'. Затем в исходном testCase (1a) перед "шагом выполнения теста" создайте скрипт groovy для восстановления имени теста:
testName = testRunner.testCase.name
return testName
Когда вы выполняете шаг запуска тестового примера, установите ${Groovy Script#result} в качестве значения для свойства 'caller'
Затем на подходящем шаге вашей цели восстановите значение вызывающего
def caller = context.expand( '${#TestCase#caller}' )
log.info caller
Это не очень просто, но может удовлетворить ваши потребности
Александр