簡體   English   中英

長期運行功能的Python單元測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM