Automated tests 我可以确定当前测试执行者是来自测试实验室还是来自QTP IDE内的交互?

Automated tests 我可以确定当前测试执行者是来自测试实验室还是来自QTP IDE内的交互?,automated-tests,qtp,hp-quality-center,Automated Tests,Qtp,Hp Quality Center,检查当前QTP测试执行是否是交互式的(即不是QC测试实验室启动的QC测试集执行的一部分)最有效的方法是什么 你们知道一个很酷的方法吗?WR过去有一个批处理运行标志,可以可靠地清除IDE中所有执行的批处理运行标志。也许QTP有这样的东西,我忽略了 首先,我考虑查看OnError属性: Set qtApp = getObject("","QuickTest.Application") qtApp.Test.Settings.Run.OnError现在返回以下

检查当前QTP测试执行是否是交互式的(即不是QC测试实验室启动的QC测试集执行的一部分)最有效的方法是什么

你们知道一个很酷的方法吗?WR过去有一个批处理运行标志,可以可靠地清除IDE中所有执行的批处理运行标志。也许QTP有这样的东西,我忽略了

首先,我考虑查看
OnError
属性:

Set qtApp = getObject("","QuickTest.Application")
qtApp.Test.Settings.Run.OnError
现在返回以下可能的值之一: “对话框”、“下一步”、“停止”或“下一步”

这将允许我查看
OnError
设置,当执行是测试集的一部分时,它可能是“Dialog”和“Stop”,但是:

  • 我在所有QTP测试中都设法避免了自动化接口,这将是我的第一个例外(早期的QTP版本变得混乱,并启动了第二个QTP实例,造成了许多问题…)
  • 测试人员可能会在QTP IDE中执行“交互式”运行,并将此设置设置为“NextStep”或“NextIteration”,然后我会在代码中对此进行误解
  • 它不工作,即使对话框没有出现(由于从QC测试集执行),返回的值也是“Dialog”。啊
      无需转到自动化对象,它在
      设置
      对象中公开

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

      请注意,TestDirector(TD)是QualityCenter(QC)的历史名称。

      可以使用它

      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
      。不幸的是,如果以交互方式运行GUI测试,它将返回
      true
      ,因此它不是一个真正完整的解决方案


      但由于另一个选项不适用于BPT组件,因此我现在使用此选项。

      Doh。那很好用。这在哪里有记录?如果没有文档记录,你怎么知道呢?即使谷歌对字符串IsInTestDirectorTest的准确点击率也为0。WTF?@theblatone,我可以告诉你,但我必须招募你。。。我不确定这是否是一个受支持的功能[无论如何,谷歌应该很快就会在
      IsInTestDirectorTest
      :o上至少有一个点击率]。明白了,thanx。Duke Nukem会说:“嘿嘿,真是一团糟。”附录:如果不是从TD/QC/ALM测试集中执行,则设置(“IsInTestDirectorTest”)返回空,而不是false。(由于为空,所以在显示的代码中这并不重要。)显然,该设置仅在以下情况下存在。。。