2015-07-20 5 views
5

ich ein Projektverzeichnis haben sieht wie folgt auspy.test: Fehler: Unbekanntes Argument

Projects/ 
....this_project/ 
........this_project/ 
............__init__.py 
............code.py 
............tests/ 
................conftest.py 
................test_1.py 
................test_2.py 

und ich fügte

eine Befehlszeilenoption (--PALLADIUM_CONFIG) durch folgende Codes in conftest.py setzen
def pytest_addoption(parser): 
    parser.addoption("--PALLADIUM_CONFIG", action="store") 

@pytest.fixture 
def PALLADIUM_CONFIG(request): 
    return request.config.getoption("--PALLADIUM_CONFIG") 

Und was seltsam ist:

wenn ich cd in

Projects/this_project/this_project 

oder

Projects/this_project/this_project/tests 

und

py.test --PALLADIUM_CONFIG=*** 

wenn läuft gut

laufen, aber wenn ich mich orten in zum Beispiel

Projects/this_project 

oder

Projects 

dann pytest gibt mir

py.test: error: unrecognized arguments: --PALLADIUM_CONFIG=*** 

Antwort

4

Fehler, der eine Beschränkung der pytest ist selbst. Werfen Sie einen Blick auf die docs:

Note that pytest does not find conftest.py files in deeper nested sub directories at tool startup. It is usually a good idea to keep your conftest.py file in the top level test or project root directory.

Eine Lösung ist ein externes Plugin, oder verschieben Sie die Option auf eine conftest Datei näher an der Wurzel zu erstellen.