2017-05-19 1 views
1

Ich versuche, eine Liste als Befehlszeilenargument an ein Roboterskript mit der Option -v zu übergeben. Da dies nicht direkt unterstützt Ich mag einige Abhilfe versuche,Wie eine Liste als Befehlszeilenargument im Roboter-Framework übergeben wird.

robot -v list_arg:a__b__c -E space:_ sample.robot 

Dieser Teil macht den Job als i Raum getrennte Werte sehen kann, wenn ich sie auf Konsole anmelden. Wie
a b c. Ich bin jedoch nicht in der Lage, über alle Listenmitglieder mit FOR zu iterieren. Ich sehe nur ein Element ("a b c") iteriert.

Gibt es eine andere elegante Möglichkeit, Listen über die Befehlszeile im Roboter-Framework zu übergeben?

Antwort

2

Obwohl ich es nicht sehr mag, konnte ich die Liste durch Split String von String Bibliothek iterieren.

*** Settings *** 
Library String 

*** Test Cases *** 
List Of Variables From CLI 
    @{list_of_vars} Split String ${my_vars} 
    :FOR ${var} IN @{list_of_vars} 
    \ Log ${var} WARN 

robot -v my_vars:1_2 -E space:_ -t "List Of Variables From CLI" .

1

Wenn Daten vorbei Strukturen Robot Framework Variable Files mit wahrscheinlich eine bessere Option wäre Erwägen Sie bereits eine Struktur in eine Befehlszeile kompatibles konvertierst. Zum Hinzufügen einer Variablendatei wird die Syntax -V c:/path/to/file.ext verwendet.

Es gibt grob zwei Ansätze:

  1. Static: Dies ist eine Textdatei, die variablen Strukturen, die Sie suchen. Dies kann in zwei Formaten:

    • Python: die variablen Strukturen mit Hilfe von regulären Python syntax Variable Syntax
    • YAML erklären: Mit dem YAML syntax es ist possble Roboter Framwork Listen, Wörterbücher und Zeichenketten zu erstellen.
  2. Dynamische: In diesem Szenario werden die Roboter-Variablen erzeugt und zurückgegeben von Python-Code:

    • Einfache Python Funktion: die get_variables(arg)function verwendet, ist der einfachste Weg, eine dynamische Anzahl der Rückkehr von Variablen oder einer dynamischen Struktur von Daten.
    • Dynamische Python Klasse: mit Hilfe einer variable class ist es möglich, bestimmte Variablen zu verbergen, haben eine feste Menge von Variablen, die durch init() basierend auf gegebenen Eingabe ergänzt oder alle von ihnen dynamisch generiert werden.

In den meisten Fällen ist die yaml Struktur der Bereitstellung saubere Art und Weise des Schreibens ein guter Weg ist, und die Aufrechterhaltung einer Eingabedatei:

string: Hello, world! 
integer: 42 
list: 
    - one 
    - two 
dict: 
    one: yksi 
    two: kaksi 
original: &org 
    item1: foo 
    item2: bar 
reference 
    org: *org 
Verwandte Themen