2016-05-23 4 views
2

ist es eine Möglichkeit, testconfig so zu konfigurieren, dass ich eine URL in der Befehlszeile dh ‚nosetests --tc = systest_url test_suit.py‘eine URL übergeben testen gegen mit Nase testconfig

Ich muss passieren kann führe meine selen-tests gegen dev- und systest-umgebungen durch, wenn du auf teamcity aufbaust. Unser Team entschied sich dafür, Python für UI-Tests zu verwenden und ich bin eher ein Java-Typ und ich versuche herauszufinden, wie das Plugin funktioniert. Es sieht so aus, als könnte ich die URL in Yaml speichern und die Datei an den Befehl --tc übergeben, tut es aber nicht. t scheinen

der Code zu arbeiten ich wie folgt aussieht geerbt:

URL = config['test' : 'https://www.google.com', ] 


class BaseTestCase(unittest.TestCase, Navigation): 
    @classmethod 
    def setUpClass(cls): 
     cls.driver = webdriver.Firefox() 
     cls.driver.implicitly_wait(5) 
     cls.driver.maximize_window() 

     cls.driver.get(URL) 

, die offensichtlich nicht

funktioniert

Antwort

1

Mit der Option nose-testconfig --tc können Sie einen Konfigurationswert überschreiben. Trennen Sie den Schlüssel mit einem Doppelpunkt vom Wert. Zum Beispiel

nosetests test.py --tc=url:dev.example.com 

wird der Wert in config['url'] machen.

from testconfig import config 

def test_url_is_dev(): 
    assert 'dev' in config['url'] 
+0

danke, gearbeitet. Muss ich immer die komplette URL übergeben? Gibt es eine Möglichkeit, den URL-Wert in der Config zu definieren? Ich nehme an, dass die Config-Parameter aus der Konfigurationsdatei, ini/yaml/json usw. abgerufen werden? – pythonist

+0

Sie können einen beliebigen Wert übergeben und ihn in der Setup-Methode nach Ihren Wünschen analysieren. Testconfig unterstützt in der Tat auch Konfigurationsdateien. Werfen Sie einen Blick auf Mauro Baraldi [Antwort] (http://stackoverflow.com/a/37390385/2027280). – sowa

1

Es ist ein Plugin für die Nase, die nosetest-config. Sie können eine Konfigurationsdatei angeben und den Dateinamen an --tc-file arg from nose übergeben.

config.ini

[myapp_servers] 
main_server = 10.1.1.1 
secondary_server = 10.1.1.2 

In Ihrem Test-Datei können Sie die Konfiguration laden.

test_app.py

from testconfig import config 

def test_foo(): 
    main_server = config['myapp_servers']['main_server'] 

als rufen Nase mit args

nosetests -s --tc-file example_cfg.ini 

Wie in docs beschrieben, können Sie andere Konfigurationsdateien verwenden, geben Sie wie YAML, JSON oder sogar Python-Module.

Verwandte Themen