基于使用__file__
的想法,也许你可以使用一个模块来帮助路径构建。你可以在模块目录中找到所有包含的文件,在字典中收集它们的名称和路径以供以后使用。
创建一个可供测试访问的模块,即除了测试之外的目录,例如testData,您可以将数据文件放在其中。在此模块的__init__.py
中,插入以下代码。
import os
from os.path import join,dirname,abspath
testDataFiles = dict()
baseDir = dirname(abspath(__file__)) + os.path.sep
for root, dirs, files in os.walk(baseDir):
localDataFiles = [(join(root.replace(baseDir,""),name), join(root,name)) for name in files]
testDataFiles.update( dict(localDataFiles))
假设您的模块名为
testData
,其中包含一个名为
data.txt
的文件,您可以在测试中使用以下结构来获取文件路径。
aFileOperation
被假定为一个接受路径参数的函数。
import unittest
from testData import testDataFiles
class ATestCase(unittest.TestCase):
def test_Something(self):
self.assertEqual( 0, aFileOperation(testDataFiles['data.txt'] )
它还允许您使用子目录,例如
def test_SomethingInASubDir(self):
self.assertEqual( 0, aFileOperation(testDataFiles['subdir\\data.txt'] )