Jon*_*lls 17 python testing unit-testing
关于放置Python单元测试的最佳位置是否存在共识?
单元测试是否应与被测试的功能包含在同一模块中(当模块单独运行时执行(if __name__ == '__main__'等等)),或者将单元测试包含在不同模块中更好?
也许这两种方法的组合是最好的,包括每个模块中的模块级测试,并添加更高级别的测试,测试多个模块中包含的功能作为单独的模块(可能在/ test子目录中?).
我假设如果测试包含在单独的模块中,测试发现会更直接,但如果他/她必须记住在修改测试模块时更新附加测试模块,则会给开发人员带来额外的负担.
我有兴趣了解人们对组织单元测试的最佳方式的看法.
Nic*_*zet 12
使用这个__main__技巧并没有多大意义.假设您的模块中有多个文件,并且它不再起作用,因为您不希望在测试模块时单独运行每个源文件.
此外,在安装模块时,大多数时候您不想安装测试.您的最终用户不关心测试,只有开发人员应该关心.
不完全是.把你的测试放入tests/,你的doc doc,并准备一个Makefile make test.任何其他方法都只是中间解决方案,仅对特定的小模块有效.
jds*_*jds 11
tests/包的子目录中,用于较大的项目.这是对您正在创建的项目最有效的问题.
有时候,你正在使用的库确定在测试应该去,因为是和Django(其中你把你的测试的情况下models.py,tests.py或者tests/在您的应用程序子目录).
如果没有现有约束,那就是个人偏好问题.对于一小组模块,将单元测试放在您正在创建的文件中可能更方便.
对于任何超过几个模块的东西,我tests/在包中的目录中单独创建测试.将测试代码与实现混合在一起会给读取代码的人增加不必要的噪音.