2013-03-05 131 views
0

我目前工作的一個項目已經下列文件結構的Python:模塊管理與測試

  • 模塊
    • 設備1
    • 設備2
  • 測試
    • 測試1

最終,我wan't能夠導入Device 1Device 2在我的測試案例Test 1。目前通過將父目錄添加到路徑中來實現:sys.path.append(os.path.join(os.path.dirname(__file__), ".."))。不幸的是,這會阻止我的IDE向我顯示設備的有用信息。由於Test 1是主要文件,因此相對導入似乎不起作用,即它以python test1.py開頭。我使用python 2.7。

回答

0

我這樣做的,我不是100%是標準的一種方式,但它的工作對其間: Screenshot of sample project

所以,你可以看到,我沒有在main.py這個模型,但。我所擁有的是一個文件夾中的模塊並在另一個文件夾中進行測試。

主要的「技巧」(並且,我不確定這是否可取)是使用sys.path.append__file__.rsplit('\',2)爬下文件夾層次結構。另一個技巧是,如果調用main,每個模塊都會加載init並進行自我測試,但是如果調用init文件,則會測試模塊的所有

希望有人能告訴你更好的解決方案,但這可能會在一個捏。

+0

感謝您的意見。作爲一個方面說明,我的測試沒有單元測試,即所有的測試都會像'python testX.py'那樣運行,我仍然在等待一個更優雅的解決方案。一個顯而易見的解決方案是將測試升級一級,但我不確定我的團隊是否同意這一點。 – anopheles 2013-03-05 21:19:52