簡體   English   中英

Python:運行相同的Unittest模塊測試多個文件

[英]Python: Run The Same Unittest module Tests For Multiple Files

我正在嘗試創建一個簡單的框架,該框架將從特定目錄中發現所有測試用例(我在這些情況下使用unittest),並對多個python文件運行這些測試用例,這些文件都將使用相同的代碼實現相同的代碼功能簽名。

Autograder.py  
TestCasesFolder/
    TestCase1.py  
    TestCase2.py  
    ...  
ImplementationFolder/
    Implementation1.py
SecondImplementationFolder/
    Implementation2.py

框架成功使用查找所有測試用例(請注意,這是在類中)

self.suites = unittest.defaultTestLoader.discover(self.testDirectory)

從那里,我想在Implementation1和Implementation2上運行這些套件。

我一直在使用內置

self.suites.run(unittest.TestResult)

unittest的方法來運行我的測試,而我解決該問題的第一個嘗試是導入要使用的當前實現進行測試

imp.load_source

然后使用正確的模塊引用更新TestCase1.py的全局名稱空間。 但是,由於每個模塊都有其自己的全局名稱空間,所以我不確定是否可以連接到其他文件名稱空間。 我也不確定這是否正確,或者是否有比我的實現更好的方法。 我應該怎么做呢?

編輯我當前似乎有效的解決方案是使Autograder.py文件通過參考Implementation模塊來更新__builtins__模塊。 實際行如下所示:

__builtins__.ImplementationModule = imp.load_source("Implementation Module", "Implementation1.py")

這意味着當TestCase1.py通過__builtins__可以訪問ImplementationModule時。 當然,問題在於這是假定__builtins__模塊從不實現任何名稱為ImplementationModule的東西,否則我將以未知的含義覆蓋它。 有這樣做的風險較小的版本嗎?

你看過鼻子系統嗎? 聽起來與您的工作非常相似。

http://readthedocs.org/docs/nose/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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