У меня есть папка «pyMS», которая содержит скрипты с документами. Также в pyMS есть папка «test», в которой есть и модульные тесты, и папка «testfiles», которая содержит файлы с данными, которые я использую для тестирования.
pyMS/
├── __init__.py
├── baseFunctions.py
└── test
├── __init__.py
├── test_baseFunctions.py
└── testfiles
└── testfile.txt
Я хочу использовать unittest для запуска doctest с
suite.addTest(doctest.DocTestSuite("baseFunctions")
Однако при попытке использовать файлы в doctest у меня возникает проблема.
Это будет работать при выполнении doctest из командной строки (python baseFunctions -v):
testfile = open('test/testfiles/testfile.txt')
но при запуске из unittest он выдает IOError, потому что test_baseFunctions.py находится в папке test, поэтому правильное расположение файла - /testfiles/testfile.txt вместо test / testfiles / testfile.txt.
Мое очень уродливое решение сейчас -
import os
testfile = open(os.abspath('').split('pyMS')[0]+'pyMS'+os.sep+'test'+os.sep+'testfiles'+os.sep+'testfile.txt'
Что было бы лучшим способом справиться с этим?