2010-11-11 31 views
2

Quel est le moyen le plus efficace de vérifier si l'exécution actuelle du test QTP est interactive, c'est-à-dire qu'elle ne fait pas partie d'une exécution de test CQ lancée à partir du laboratoire de test CQ?Puis-je déterminer si les exécutions de test en cours à partir du laboratoire de test ou interactivement à partir de l'IDE QTP?

Est-ce que vous connaissez un moyen cool? WR avait l'habitude d'avoir un drapeau d'exécution par lots qui a été effacé de manière fiable pour toutes les exécutions à partir de l'EDI. Peut-être QTP a quelque chose comme ça, et je l'ai oublié?

D'abord, je pensais à regarder la propriété OnError:

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

qtApp.Test.Settings.Run.OnError retourne maintenant l'une de ces valeurs possibles: "dialogue", "NextIteration", "Stop" ou "NextStep".

Cela me permettrait de regarder le réglage OnError, ce qui est probablement <> « dialogue » et <> « Stop » lorsque l'exécution fait partie d'un ensemble de test, mais:

  • J'ai réussi à éviter l'interface d'automatisation dans tous mes tests QTP, ce serait ma première exception (les versions précédentes de QTP se confondaient et lancaient une seconde instance QTP, créant beaucoup de problèmes ...)
  • Un testeur peut effectuer une exécution "interactive" depuis l'intérieur l'IDE QTP avec ce paramètre défini sur "NextStep" ou "NextIteration", que j'interpréterais alors dans mon code.
  • Cela ne fonctionne pas, même si les boîtes de dialogue n'apparaissent pas (en raison de l'exécution à partir d'un jeu de test CQ), la valeur renvoyée est "Dialogue". DOH!

Répondre

2

Pas besoin d'aller à l'objet automation, il est exposé dans l'objet Setting.

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

Notez que TestDirector (TD) est le nom historique de QualityCenter (QC).

+0

Doh. Cela fonctionne parfaitement. Où est-ce documenté? Si ce n'est pas documenté, comment le savez-vous? – TheBlastOne

+0

Même google a 0 réponses exactes pour la chaîne IsInTestDirectorTest. WTF? – TheBlastOne

+0

@TheBlastOne, je pourrais vous dire mais alors je devrais vous recruter ... Je ne suis pas sûr si c'est une fonctionnalité soutenue [de toute façon bientôt Google devrait avoir au moins un hit pour 'IsInTestDirectorTest': o)]. – Motti

0

Il est peut-être une option pour utiliser

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 

qui est basé sur QCUtil.CurrentTestSetTest. Malheureusement, il renvoie true si vous exécutez un test d'interface graphique de manière interactive, ce n'est donc pas vraiment une solution complète.

Mais comme l'autre option ne fonctionne pas avec les composants BPT, j'utilise maintenant cette option.