問題
unittestで、setUp内でテストデータを作成しようとするとファイルが作成されない。
(あまり調べてないが、原因はよくわからない。。。)
解決策
setUp内で、tempfileモジュールを使用して、テストディレクトリを作り、その下でファイルを作成すればよい。
なお、tearDownでファイルを削除することを忘れずに。
自動作成したテストファイルでunittest
import os
import shutil
import tempfile
import unittest
class TestExample(unittest.TestCase):
def setUp(self):
self.test_dir = tempfile.mkdtemp()
self.test_file = os.path.join(self.test_dir, 'test_file.txt')
test_content = """
test file content
"""
with open(self.test_file, 'w') as fp:
fp.write(test_content)
def tearDown(self):
shutil.rmtree(self.test_dir)
def test_hoge(self):
result = hoge(self.test_file)
expect = "hoge's result"
self.assertEqual(result, expect)
if __name__ == '__main__':
unittest.main()
コードに誤りがあったのを修正しました(7/27)