2016-04-29 11 views
2

Ich möchte eine Art Hook-Mechanismus vor/nach jedem Test ausführen. Zum Beispiel möchte ich ein Schlüsselwort ausführen, wenn ich ARGUMENT=1 zu Pybot oder Python für jeden Test übergeben, nicht ändern ganze Reihe von Tests in meinem Projekt.Globaler Test-Hook oder globaler Test-Teardown für jeden Test im Roboter-Framework

Ist es möglich?

Ähnliche Möglichkeit, können Sie einen Vorher oder Nachher Haken arbeiten mit Gurke Rahmen, aber hier. Ich verstehe noch nicht.

Danke.

Antwort

1

ich die Antwort von mir gefunden. Sie sollten einen neuen Listener für Test-Hooks erstellen.

Über Zuhörer Roboter: Robot Framework Listener Interface

# -*- coding: utf-8 -*- 
from robot.libraries.BuiltIn import BuiltIn 


class global_hooks(object): 
    """ 
     Global scope library listener 
     as global hook mechanism. 
    """ 

    ROBOT_LISTENER_API_VERSION = 3 
    ROBOT_LIBRARY_SCOPE = "GLOBAL" 

    def __init__(self): 
     self.ROBOT_LIBRARY_LISTENER = self 

    def __log_variables(self): 
     """ 
      Example private function. 
     """ 
     if BuiltIn().get_variable_value(name='${SOME_VAR}', default=False): 
      BuiltIn().run_keyword(name=self.log_test_variables.__name__) 

    def end_test(self, data, result): 
     """ The `end test` hook """ 

     self.__log_variables() 

    def log_test_variables(self): 
     """ 
      Keyword for showing up all variables in the test context. 
     """ 

     BuiltIn().log_variables(level='INFO') 
2

Ich denke, Sie für die Suche: Suite setup and Suite teardown

Oder vielleicht die Test setup and Test teardown

Beispiel Suite Setup:

*** Settings *** 
Library       DatabaseLibrary 
Force Tags      UI FINAL 
Resource ${CURDIR}${/}..${/}..${/}resources${/}keywords.robot 
Suite setup Run Keywords  Restore database 
...        Prepare database 
Suite teardown Run Keywords Close All Browsers 
...        Restore database 

*** Keywords *** 
Prepare database 
    Connect to DB 
    Execute Sql Script ${CURDIR}${/}Setup_td.sql 
    Disconnect From Database 

Restore database 
    Connect to DB 
    Execute Sql Script ${CURDIR}${/}Teardown_td.sql 
    Disconnect From Database 
+0

Sie sich die Zeit danken, @michel. Auf deine Antwort: Ich sollte diesen Teardown in jede Testsuite schreiben. Ich möchte das nicht tun. Ich habe ein Hörer-Interface benutzt, um dieses Ziel zu erreichen. –