Доступ к данным, определенным плагином, из различных тестовых файлов

Я пытаюсь реализовать набор тестов для носа в моем коде Python.

Я вызываю метод Nose run из этого файла, добавляя к нему собственный плагин на основе пример из документации по носу:

import os
import sys
import outer_packages
import nose
from nose.plugins import Plugin
import misc_methods
from rednose import RedNose
import termstyle

class CTRexScenario():
    configuration = None
    trex          = None
    platform      = None

class CTRexTestConfiguringPlugin(Plugin):
    def options(self, parser, env={}):
        parser.add_option('--trex-scenario-config', action='store',
                            dest='config_path', default='config/config.yaml',
                            help='Specify path to the T-Rex testing scenario, defining T-Rex, platform and a TFTP server. Default is /config/config.yaml')

    def configure(self, options, conf):
        if options.config_path:
            self.configuration = misc_methods.load_complete_config_file(options.config_path)
            self.enabled = True

    def begin (self):
        CTRexScenario.configuration = self.configuration

def set_report_dir (report_dir):
    if not os.path.exists(report_dir):
        os.mkdir(report_dir)

if __name__ == "__main__":

    # setting defaults. By default we run all the test suite
    specific_tests   = False;
    long_test       = False
    report_dir      = "reports"

    for arg in sys.argv:
        if 'unit_tests/' in arg:
            specific_tests = True;

    nose_argv= sys.argv + ['-s','-v','--exe', '--rednose', '--with-xunit','--xunit-file=' + report_dir + "/unit_test.xml"]

    # Run all of the unit tests or just the selected ones
    if not specific_tests:
        nose_argv += ['unit_tests']

    result = nose.run(argv = nose_argv, addplugins = [RedNose(), CTRexTestConfiguringPlugin()])#, plugins=[CConfiguringPlugin()])

    if result == True:
        print termstyle.green("passed!")
        sys.exit(0)
    else:
        sys.exit(-1);

Теперь я хочу создать общий тестовый пример, из которого, содержащий этот сценарий, будет один и тот же общий сценарий для всех следующих тестов. т.е.- Все тесты, наследуемые от общего случая, будут основываться на одних и тех же методах setUp и tearDown.

Вот общий тестовый файл:

from nose.plugins import Plugin
import trex
import misc_methods
import sys

class CTRexGeneral_Test():
    """This class defines the general testcase of the T-Rex traffic generator"""

    def setUp(self):
        self.a = CTRexScenario()
        ##### Here I want to config the rest of the scenario, based on the passed configuration file

    def test_can_frobnicate(self):
        assert (self.a.configuration==None)
        # assert 2*5==10

    def tearDown(self):
        pass

К сожалению, я не понимаю, как мне получить доступ к извлеченной конфигурации (которая уже проанализирована плагином) из общего тестового файла

Спасибо!!


person cyber101    schedule 01.12.2014    source источник
comment
возможный дубликат Как получить доступ к параметрам плагина в тесте? (Питоновый нос)   -  person Oleksiy    schedule 02.12.2014
comment
@Oleksiy, Дело в том, что на основе файла конфигурации я пытаюсь создать процедуру установки, которая занимает некоторое время (аппаратно фиксированное время). Это должно произойти только один раз во всем наборе тестов, и после того, как это будет сделано, потребуется доступ к каждому из атрибутов CTRexScenario (конфигурация, платформа и т. д.) из каждого из тестовых файлов, поскольку, возможно, потребуется выполнить дальнейшие манипуляции. и это ссылка на эти аппаратные устройства. Я не уверен, что предоставленная ссылка имеет место (пробовал глобальные вещи, не предоставил то, что хотел)   -  person cyber101    schedule 02.12.2014