我正在开发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
我是单元测试的新手(我知道我早就应该这样做了)所以我不确定哪种方法更好,我正在寻找那些有更多经验的人的建议。
谢谢!
答案 0 :(得分:1)
在我看来,情景1更好。例如,当您部署时,它会使事情变得更容易。您不想部署测试代码,因此您只需省略软件包中的tests/
目录。这种方法更清晰。
情景2很混乱;我没有看到以这种方式混合测试代码和生产代码的任何优势。
答案 1 :(得分:1)
第二种方案允许您拥有可插入的包,至少在Django framework中使用(提一些权限)。如果您使用普通unittest
模块,它具有discover实用程序,无论您如何组织它们,都会找到项目文件夹中的所有测试,因此第二种方法也适用于此。