2017-07-14 1 views
0

RobotComment faire pour que Robot Framework enregistre les méthodes python appelées en python?

Test Robot 
    [Tags]        example 
    Test 

Python:

def robot_keyword(function): 
    @functools.wraps(function) 
    def wrapper(*args, **kwargs): 
     logger.console(function.__name__) 
     return BuiltIn().run_keyword(function.__name__) 
    return wrapper 

def test(): 
    # BuiltIn().run_keyword('hello') 
    hello() 

@robot_keyword 
def hello(): 
    logger.console('hi') 

Parce que run_keyword ne passe pas le pointeur de fonction et essaie d'appeler bonjour() à nouveau, je frappe une boucle.

Limite maximale des mots clés démarrés dépassée.

Est-ce que quelqu'un a trouvé un moyen d'avoir des fonctions de journalisation de robot comme 'bonjour()' dans les journaux du robot?

+0

Votre indentation est incorrecte dans votre exemple de code. Toutes les fonctions sont-elles dans la définition de 'robot_keyword'? S'il vous plaît corriger l'indentation. –

+0

Merci, corrigé. Je peux avoir les traces. Je voulais que l'arborescence html réductible des mots-clés imbriqués. Juste pour ne pas avoir une trace plate pour les gros mots-clés python. –

Répondre

0

Les retraits sont disponibles avec le niveau de journalisation DEBUG.

Dans le cadre du robot section guide utilisateur Debugging problems:

Si le fichier journal ne fournit pas suffisamment d'informations par défaut, il est possible d'exécuter des tests avec un niveau de log inférieur. Par exemple, les retraçages indiquant l'emplacement du code dans le code sont enregistrés à l'aide du niveau DEBUG et cette information est inestimable lorsque le problème se trouve dans un mot clé de bibliothèque individuel.