我正在尝试拥有可互换的配置文件,并且我正在使用py.test将测试套件发送到云中。
当我在终端中使用python main.py --site site1
在本地运行它们时,以下工作。
我试图弄清楚如何添加cli参数,以便它可以与py.test一起使用
我有3个文件。 main,config和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
我正在尝试设置一个标志,以便当py.test -n6 --boxed main.py site1
运行后,site1_config.py会将其内容复制到config.py
我不确定如何使它与py.test一起使用
用法:py.test [选项] [file_or_dir] [file_or_dir] [...]py.test:错误:无法识别的参数:
# content of conftest.py
import pytest
def pytest_addoption(parser):
parser.addoption("--cmdopt", action="store", default="type1",
help="my option: type1 or type2")
在pytest中,我不确定详细程度是否可以选择
pytest.main(input)
上的某些引用未指定输入必须为列表,但从今天开始必须为列表。