簡體   English   中英

Python:單元測試模塊和相對導入

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

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