[英]Python: Unit Testing Module and Relative Imports
目前有以下文件層次結構:
\package
__init__.py
run_everything.py
\subpackage
__init__.py
work.py
work1.py
work2.py
\test
__init__.py
test_work.py
test_work1.py
我的第一個問題是關於相對進口。 假設在\\ subpackage \\ work.py中我有一個名為custom_function()的函數,我想在test_work.py中測試該函數。 出於某種原因,我無法弄清楚如何從一個模塊導入到另一個模塊。 嘗試from .. subpackage.work1 import custom_function()
似乎不起作用,並產生錯誤Attempted relative import in non-package
是否有任何方法來解決這個問題?
2)我想使用一個函數運行run_everything.py中的所有測試文件,在每個test_work * .py文件中添加一個suite()函數,它將每個unit_testing類添加到suite.addTest(unittest.makeSuite(TestClass)) ,最后將它們導入頂層run_everything.py是Python2.7中最常規的方式嗎?
這是一個黑客*
使用以下命令將路徑轉到“subpackage”和“test”到run_everything中的python路徑:
import sys sys.path.insert(0, '/path/to/package/subpackage') sys.path.insert(0, '/path/to/package/test')
然后,您可以在run_everything中使用vanilla導入導入所有文件:
import work, work1, work2 import test_work, test_work1
*這不會永久影響您的PYTHONPATH。 *不要忘記向我投票硬編碼:(
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.