【发布时间】:2016-08-28 10:20:13
【问题描述】:
我目前正在开发一个 Python 应用程序,我只需通过记录各个部分的运行时间来持续进行性能测试。
很多代码仅与测试环境相关,不会存在于现实世界的应用程序中,我将这些代码分离为函数,目前我在测试时将这些调用注释掉。这需要我记住哪些调用仅引用测试组件(它们非常交错,因此我无法对功能进行分组)。
我想知道是否有更好的解决方案,到目前为止我唯一的想法是创建一个“模式”布尔值并插入 If 语句,尽管这感觉不必要的混乱。我希望可能有一些我很天真的更标准化的测试方法。
我是 python 新手,所以我可能忽略了一些简单的解决方案。 提前谢谢你
【问题讨论】:
-
您能否提供一些您想要隔离的部分的通用代码示例?我想到的一个选项是将这些部分移动到单独的函数中,这些部分用一些自定义装饰器装饰,例如
@testing_environment_only。但在我看来,代码的那些部分,如果是测试代码,与生产代码一起存在是没有意义的——糟糕的架构。确保详细说明。 -
目前所有的测试代码都驻留在不同的函数中。我应该说我是 Python 新手,所以即使是简单的建议也欢迎,我不知道装饰器的使用,所以我会研究一下。
-
处理它的正确方法是在单独的包中进行测试。如果需要,这些测试可以模拟您正在测试的其他代码。如果您提供一些代码示例,您可能会得到更有价值的反馈。