基於使用__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'])
來源
2010-09-16 20:53:39
Rod