Wie greife ich innerhalb eines Tests auf Plugin-Optionen zu? (Python Nase)

Wir versuchen, ein automatisiertes Testframework mithilfe von nose zu implementieren. Es sollen einige Befehlszeilenoptionen hinzugefügt werden, die an die Tests übergeben werden sollen, z. B. ein Hostname. Wir führen diese Tests gegen eine Web-App als Integrationstests durch.

Deshalb haben wir ein einfaches Plugin erstellt, das dem Parser eine Option hinzufügt:

import os
from nose.plugins import Plugin

class test_args(Plugin):
    """
    Attempting to add command line parameters.
    """
    name = 'test_args'
    enabled = True

    def options(self, parser, env=os.environ):
        super(test_args, self).options(parser, env)
        parser.add_option("--hostname",
                    action="store",
                    type="str",
                    help="The hostname of the server")

    def configure(self, options, conf):
        self.hostname = options.hostname    

Die Option ist jetzt verfügbar, wenn wir Nosetests ausführen ... aber ich kann nicht herausfinden, wie es in einem Testfall verwendet wird? Ist das möglich? Ich kann keine Dokumentation zum Zugriff auf Optionen oder zur Konfiguration in einem Testfall finden.

Das Hinzufügen der Befehlszeilenargumente dient ausschließlich dem Entwickeln / Debuggen von Code. Wir planen, Konfigurationsdateien für unsere automatisierten Läufe in Bambus zu verwenden. Bei der Entwicklung von Integrationstests und beim Debuggen von Problemen ist es jedoch hilfreich, die Konfiguration im laufenden Betrieb zu ändern. Aber wir müssen erst herausfinden, wie wir die Optionen tatsächlich nutzen können ... Ich habe das Gefühl, dass mir nur etwas Grundlegendes fehlt, oder ich bin blind ...

Im Idealfall könnten wir das erweiterntestconfig plugin Um daraus Konfigurationsargumente zu machen:

--tc=key:value

zu:

--key=value

Wenn es einen besseren Weg gibt, bin ich ganz Ohr.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage