2016-04-29 2 views
2

Я хочу, чтобы какой-либо механизм крюка работал до/после каждого теста. Например, я хочу запустить ключевое слово, если я прошел ARGUMENT=1 в pybot или python для каждого теста, не изменяя целую кучу тестов в моем проекте.Глобальный тестовый крючок или глобальный тест для каждого теста в роботизированной структуре

Возможно ли это?

Аналогичным образом вы можете создать до или после крючка, работающего с каркасом огурца, но здесь. Я еще не понимаю.

Спасибо.

ответ

1

Я нашел ответ сам. Вы должны создать новый прослушиватель, который будет использоваться для тестовых крючков.

О роботизированных слушателей: 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

Я предполагаю, что вы ищете: Suite setup and Suite teardown

Или, может быть, Test setup and Test teardown

Пример установки ванной:

*** 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

Спасибо за ваше время, @michel. На ваш ответ: я должен написать этот отрыв в каждом наборе тестов. Я не хочу этого делать. Для достижения этой цели я использовал интерфейс слушателя. –