适用于Python中单元测试的文件层次结构

时间:2012-02-15 16:07:29

标签: python unit-testing

我正在开发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

我是单元测试的新手(我知道我早就应该这样做了)所以我不确定哪种方法更好,我正在寻找那些有更多经验的人的建议。

谢谢!

2 个答案:

答案 0 :(得分:1)

在我看来,情景1更好。例如,当您部署时,它会使事情变得更容易。您不想部署测试代码,因此您只需省略软件包中的tests/目录。这种方法更清晰。

情景2很混乱;我没有看到以这种方式混合测试代码和生产代码的任何优势。

答案 1 :(得分:1)

第二种方案允许您拥有可插入的包,至少在Django framework中使用(提一些权限)。如果您使用普通unittest模块,它具有discover实用程序,无论您如何组织它们,都会找到项目文件夹中的所有测试,因此第二种方法也适用于此。