[英]Python unit testing for long running functions
我有一個運行時間很長的python方法,此功能將放入文件夾中並讀取所有文檔並提取文本。 輸出數量將不會變化,因為它可以更改。 此過程可能需要幾個小時到幾天。 如何為這種功能編寫單元測試,如何檢查其通過還是失敗,因為輸出數量可能會發生變化並且需要花費許多小時
這種問題可以通過使用測試資源來解決。 當您需要對文件數據測試功能時,這是一個經典問題。
在您的tests
目錄中(您有一個,不是嗎?),您可以創建一個resources
包。
您需要做的就是將測試數據放在這里。 當然,選擇最小的樹結構:測試所需的唯一必需的文件和目錄。
要訪問您的resources
目錄,我建議使用RESOURCES_DIR
變量,定義如下:
在__init__.py
文件中,您可以編寫:
import os
RESOURCES_DIR = os.path.dirname(__file__)
您可以在單元測試中輕松導入此變量,並使用它訪問測試文件。
這是一個更詳細的示例:
tests
+-- resources
| +-- __init__.py
| \-- test_func1
| +-- scenario1
| | +-- <data for scenario1>
| \-- scenario2
| \-- <data for scenario2>
|
+-- test_func1.py
您的test_func1.py
可能如下所示:
import unittest
import os
from tests.resources import RESOURCES_DIR
class TestFunc1(unittest.TestCase):
def test_func1_scenario1(self):
data_dir = os.path.join(RESOURCES_DIR, 'test_func1/scenario1')
...
def test_func1_scenario2(self):
data_dir = os.path.join(RESOURCES_DIR, 'test_func1/scenario2')
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.