Могу ли я определить, работает ли текущий тест из лаборатории тестирования или в интерактивном режиме в QTP IDE? - PullRequest
2 голосов
/ 11 ноября 2010

Каков наиболее эффективный способ проверить, является ли текущее выполнение теста QTP интерактивным, т. Е. Не частью выполнения набора тестов QC, запущенного из лаборатории тестирования QC?

Ребята, вы знаете крутой способ? WR имел флаг пакетного запуска, который был надежно очищен для всех выполнений из среды IDE. Может быть, у QTP есть что-то вроде этого, и я упустил это из виду?

Сначала я подумал о просмотре свойства OnError:

Set qtApp = getObject("","QuickTest.Application")

qtApp.Test.Settings.Run.OnError теперь возвращает одно из следующих возможных значений: «Диалог», «Следующая замена», «Стоп» или «Следующий шаг».

Это позволило бы мне взглянуть на параметр OnError, который, вероятно, равен <> "Dialog" и <> "Stop", когда выполнение является частью набора тестов, но:

  • Мне удалось избежать интерфейса автоматизации во всех моих тестах QTP, это было бы моим первым исключением (более ранние версии QTP запутались и запустили второй экземпляр QTP, создав много проблем ...)
  • Тестировщик может выполнить «интерактивный» прогон из среды IDE QTP с этим параметром, установленным в «NextStep» или «NextIteration», который я затем неверно истолковал бы в своем коде.
  • Не работает, даже если диалоги не появляются (из-за выполнения из набора тестов QC), возвращаемое значение - «Диалог». DOH!

Ответы [ 2 ]

2 голосов
/ 14 ноября 2010

Нет необходимости идти к объекту автоматизации, он выставлен в объекте Setting.

If Setting("IsInTestDirectorTest") Then
    Print "Run from QC"
Else
    Print "Not run from QC"
End If     

Обратите внимание, что TestDirector (TD) - это историческое имя QualityCenter (QC).

0 голосов
/ 13 января 2016

Это может быть вариант использования

Public Function IsTestSetRun ()
    Dim Result: Result=false
    If not QCUtil is Nothing then
        If not QCUtil.CurrentTestSetTest is Nothing then
            Result=true
        End If
    End If
    IsTestSetRun=Result
End Function

на основе QCUtil.CurrentTestSetTest. К сожалению, он возвращает true, если вы запускаете тест GUI в интерактивном режиме, так что это не совсем полное решение.

Но поскольку другая опция не работает с компонентами BPT, я сейчас использую эту опцию.

...