Я пытаюсь написать некоторые модульные тесты с определенными методами, которые анализируют различные элементы моего XML. Но у меня есть несколько проблем с анализом файла "test" xml в моем модульном тесте.
Мой вопрос не столько о том, что делать с файлами XML / XSD, а о том, как правильно разобрать их в моем модульном тесте.
Это мой код до сих пор:
import unittest
from lxml import etree
from Directory.method_in_class import ClassName #changed the names for security
class TestXmlData(unittest.TestCase):
def setUp(self):
self.method_in_class = ClassName()
XSDDoc = etree.parse("dir/testxsd.xsd")
rootXSD = XSDDoc.getroot()
def test_whatever(self):
# Test whatever
if __name__ == '__main__':
unittest.main()
Несмотря на то, что я выполняю синтаксический анализ в методе реализации, я получаю следующая ошибка:
OSError: Ошибка чтения файла 'dir / testxsd.xsd': не удалось загрузить внешний объект "dir / testxsd.xsd"
Имею попробовал несколько других альтернатив, таких как загрузка файла из этого ответа , но при этом выдает ошибку:
import unittest
from lxml import etree
import os
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
class TestSpecData(unittest.TestCase):
def setUp(self):
my_data_path = os.path.join(THIS_DIR, os.pardir, 'dir/testxsd.xsd')
rootXSD = my_data_path.getroot()
def test_whatever(self):
data = sum(1, 2)
self.assertEqual(data, 3)
if __name__ == '__main__':
unittest.main()
AttributeError: у объекта 'str' нет атрибут 'get root'
Я также пытался этот ответ , но я не знаком с Django, поэтому получал кучу ошибок.