Я пытаюсь реализовать набор тестов для носа в моем коде 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
К сожалению, я не понимаю, как мне получить доступ к извлеченной конфигурации (которая уже проанализирована плагином) из общего тестового файла
Спасибо!!