Comment faire pour importer et utiliser des classes définies par l'utilisateur dans le robot cadre avec python
Supposons que j'ai une classe en python:
class TestClass(object):
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def print_args(self):
print arg1, arg2
Je veux utiliser robotframework
pour mettre en place mes tests de scénarios. Je veux faire une instance de classe ci-dessus et appeler ses méthodes. Comment faire? Je sais comment faire pour importer le répertoire "lib"; il devrait ressembler à ceci:
Library TestClass
Je ne sais pas comment initialiser un objet de cette classe et d'appeler les méthodes de la classe via cet objet. Si je voulais la mettre en œuvre avec python, je voudrais écrire un morceau de code comme ceci:
import TestClass
test = TestClass('ARG1', 'ARG2')
test.print_args()
Maintenant, je veux savoir comment écrire ceci dans robotframework
. Toute aide?
Vous devez vous connecter pour publier un commentaire.
Pour importer la bibliothèque avec des arguments, juste ajouter après le nom de la bibliothèque:
De sorte que les "importer" et l'instanciation sont fait d'un seul coup. Maintenant, la chose qui peut être difficile est de comprendre la portée de votre instance. Ceci est bien expliqué dans le Guide de l'Utilisateur de la section "Bibliothèque De Test De Portée":
Noter que si vous souhaitez importer la même bibliothèque à plusieurs reprises avec des arguments différents, et par conséquent, la différence cas de vos classes, vous aurez à leur nom à l'importation:
Puis dans vos tests, vous devez préfixer le mots-clés:
Ceci est expliqué dans cette section du Guide de l'Utilisateur.
J'ai été en mesure d'instancier les classes python à la demande (c'est à dire pas seulement codée en dur args via la Bibliothèque technique).
J'ai utilisé une méthode d'aide à créer la classe. J'ai été incapable d'obtenir le Robot de script pour appeler le constructeur de la classe directement, mais il est capable d'appeler des fonctions en Python, nous pouvons donc créer une classe ou namedtuple en fournissant une fonction de base de l'interface: