基于 using 的想法__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'] )