を使用するという考えに基づいて__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'] )