2014-10-14 3 views
-2

Я пытаюсь иметь взаимозаменяемые файлы конфигурации, и я использую py.test для отправки набора тестов в облако.Как добавить аргументы cli в py.test?

Следующие операции выполняются, когда я запускаю их локально, используя python main.py --site site1 в терминале.

Я пытаюсь понять, как я могу добавить аргументы CLI, так что он будет работать с py.test

У меня есть 3 файлов. основной, конфигурации и site1_config

main.py

if __name__ == "__main__": 

parser = argparse.ArgumentParser(description='CLI tests for an environment') 
parser.add_argument('--site', nargs='?', help='the site to use for the config') 
parser.add_argument('unittest_args', nargs='*') 
#Get our property 
args = parser.parse_args() 
if args.site: 
    config.localizeConfig(args.site) 
sys.argv[1:] = args.unittest_args 

unittest.main(verbosity = 2) 

config.py

def localizeConfig(site): 
    localizedConfig = __import__(site+'_config'); 
    # localizedConfig = __import__(site); 
    #print dir(localizedConfig) 
    props = filter(lambda a: not a.startswith('__'), dir(localizedConfig)) 
    #Iterate over each property and set it on the config 
    for prop in props: 
     if prop != 'os' and prop != 'sys' and prop != 'webdriver': 
      globals()[prop] = getattr(localizedConfig, prop) 
host_url = www.google.com 

site1_config.py

host_url = www.yahoo.com 

Im пытаясь установить флаг так, что когда py.test -n6 --boxed main.py site1 , сайт1_config.py скопирует содержимое в конфигурацию. ру

Я не знаю, как я могу получить эту работу с py.test

использования: py.test [опции] [file_or_dir] [file_or_dir] [...] py.test: ошибка : непризнанные аргументы:

ответ

0

Я не получить то, что вы пытаетесь сделать, но для того, чтобы добавить аргументы CLI для py.test проверки: http://pytest.org/latest/example/simple.html:

# content of conftest.py 
import pytest 

def pytest_addoption(parser): 
    parser.addoption("--cmdopt", action="store", default="type1", 
     help="my option: type1 or type2") 
Смежные вопросы