2012-02-15 33 views
5

我正在開發一個Python包/模塊(無可執行文件)的集合。設置文件層次結構進行測試的正確/最佳方式是什麼?我能想到的兩種方案:在Python中進行單元測試的適當文件層次結構

方案1:

AllPackages/ 
    package1/ 
     module1-1.py 
     module1-2.py 
    package2/ 
     module2-1.py 
     module2-2.py 
    tests/ 
     package1/ 
      test_module1-1.py 
      test_module1-2.py 
     package2/ 
      test_module2-1.py 
      test_module2-2.py 

方案2:

AllPackages/ 
    package1/ 
     module1-1.py 
     module1-2.py 
     tests/ 
      test_module1-1.py 
      test_module1-2.py 
    package2/ 
     module2-1.py 
     module2-2.py 
     tests/ 
      test_module2-1.py 
      test_module2-2.py 

我是新來的單元測試(我知道,我早就應該做了),所以我」我不確定哪種方法更好,我正在尋找那些有更多經驗的人的建議。

謝謝!

回答

1

第二種方案允許您擁有可插入的軟件包,至少在Django framework(提到某些權限)時使用。如果使用普通的unittest模塊,則它具有discover實用程序,無論您如何組織它們,它都可以找到項目文件夾中的所有測試,因此第二種方法也適用於此。

+0

謝謝,這看起來像一個很好的解決方案。我喜歡在添加更多封裝和模塊時它可擴展。 – jlconlin 2012-02-15 17:48:58

1

在我看來情況1更好。例如,它使得部署時更容易。您不想部署測試代碼,因此您只需在包中省略tests/目錄。這種方法更清潔。

情景2很混亂;我沒有看到以這種方式混合測試代碼和生產代碼的優勢。

相關問題