2015-07-20 3 views
5

У меня есть каталог проекта выглядит следующим образомpy.test: ошибка: Непризнанные аргументы

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

и я добавил параметр командной строки (--PALLADIUM_CONFIG), поставив следующие коды в conftest.py

def pytest_addoption(parser): 
    parser.addoption("--PALLADIUM_CONFIG", action="store") 

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

И что странно:

если я кд в

Projects/this_project/this_project 

или

Projects/this_project/this_project/tests 

и запустить

py.test --PALLADIUM_CONFIG=*** 

если работает хорошо

, но если я найти себя, например, в

Projects/this_project 

или

Projects 

тогда pytest дает мне ошибку

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

ответ

4

Это ограничение самого pytest. Посмотрите на 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.

Одно из решений заключается в создании внешнего модуля, или переместить опцию в conftest файл ближе к корню.

Смежные вопросы