Нет нос не имеет никакого тока возможность установить переменные окружения из файла конфигурации:
def _configTuples(self, cfg, filename):
config = []
if self._config_section in cfg.sections():
for name, value in cfg.items(self._config_section):
config.append((name, value, filename))
return config
def _readFromFilenames(self, filenames):
config = []
for filename in filenames:
cfg = ConfigParser.RawConfigParser()
try:
cfg.read(filename)
except ConfigParser.Error, exc:
raise ConfigError("Error reading config file %r: %s" %
(filename, str(exc)))
config.extend(self._configTuples(cfg, filename))
return config
Любые параметры конфигурации, указанные в файле конфигурации будут храниться непосредственно в виде кортежа в списке. На самом деле, если вы попытались передать некоторые значения, которые нос не принял, то это вызовет ошибку.
def _applyConfigurationToValues(self, parser, config, values):
for name, value, filename in config:
if name in option_blacklist:
continue
try:
self._processConfigValue(name, value, values, parser)
except NoSuchOptionError, exc:
self._file_error(
"Error reading config file %r: "
"no such option %r" % (filename, exc.name),
name=name, filename=filename)
except optparse.OptionValueError, exc:
msg = str(exc).replace('--' + name, repr(name), 1)
self._file_error("Error reading config file %r: "
"%s" % (filename, msg),
name=name, filename=filename)
См. Часть, в которой вы получаете NoSuchOptionError.
У вас есть один вариант, с которым я немного помолчал; используя nose-testconfig, который позволяет вам указать параметры конфигурации теста в каком-то файле, где нос не будет выдать ошибку, если ваши значения непризнаны.
Или вы можете просто выбросить некоторые @setup или @teardown методов в ваших тестах. Я был бы очень осторожен в добавлении любого скрипта setupTests.sh, так как это добавляет дополнительный уровень сложности для запуска ваших тестов.
Чтение далее, похоже, мне нужно настроить тестовое устройство, которое запускается перед моими испытаниями. Однако документация на нос, по-видимому, не имеет ясных примеров. – stsquad
создайте файл runtests.sh, который устанавливает среду вверх, а затем вызывает 'nosetests' –
@JoranBeasley: этого я и стараюсь избежать. Это, в основном, удобная вещь, так как IDE, похоже, предназначены только для непосредственного использования nosetests. – stsquad