[英]Unit testing with external data file in Python
我是python的新手,正在嘗試運行注入了來自外部文件的數據的單元測試:
class TestIsEquivalent(unittest.TestCase):
filename = os.getcwd() + '\\data\\test-data.txt'
with open(filename) as f:
testdata = f.readlines()
for value in testdata:
print(value)
def test_0(self):
result = isEquivalent(value, value, 0)
self.assertEqual(result, True)
我在測試函數中調用isEquivalent()時遇到以下錯誤:
NameError: name 'value' is not defined
這似乎暗示了一個范圍界定問題,但是我無法弄清楚如何將for循環中的值傳遞給測試方法。 任何建議將不勝感激。
您完整的測試用例應包裝在一個函數中。 我不能完全確定您要在for循環中使用函數定義做什么,但是將def test_0(self)
移到類的頂部可以解決問題。
class TestIsEquivalent(unittest.TestCase):
def test_0(self):
filename = os.getcwd() + '\\data\\test-data.txt'
with open(filename) as f:
testdata = f.readlines()
for value in testdata:
print(value)
result = isEquivalent(value, value, 0)
self.assertEqual(result, True)
但是,如果您要創建多個測試用例,使您都擁有testdata內的所有值,並且不想多次讀取文件,則可以使用setUpClass
函數,該函數在類內所有單元測試開始時執行一次。 結果看起來像這樣。
class TestIsEquivalent(unittest.TestCase):
@classmethod
def setUpClass(cls):
filename = os.getcwd() + '\\data\\test-data.txt'
with open(filename) as f:
cls.testdata = f.readlines()
def test_0(self):
for value in self.testdata:
print(value)
result = isEquivalent(value, value, 0)
self.assertEqual(result, True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.