将unittest类放在相关脚本本身中,而不是创建单独的文件

时间:2011-12-01 18:44:03

标签: python unit-testing

所以我正在为我的所有脚本创建单元测试,其中很多都不是oo,并且有主循环代码。我想知道与受影响的脚本相关的创建unittest类的位置标准是什么。单元测试应该在单独的文件中导入脚本,然后对主循环代码进行功能化吗?或者它可以在相关脚本的末尾推送?

3 个答案:

答案 0 :(得分:1)

您应该将测试分成自己的文件,并从主文件中提取函数,以便对其进行测试。

(在您提取函数之后,您可能会注意到它们之间正在共享大量数据,暗示您应该创建一个类。)

您将拥有这样的文件:

def func_1():
    ...

def func_2():
    ...

def main():
    ....

if __name__ == '__main__':
    main()

一个文件单独的测试文件,用于测试func_*个函数。

另外,就像@ eli-bendersky所说的那样,如果这些func_*函数都足够相关,那么它们应该被提取到它们自己的模块中,因此它们很容易被其他脚本重用,但这是一个开始。 / p>

答案 1 :(得分:0)

最佳做法是在模块中捆绑一些相关功能。对于该模块,您可以使用单元测试创​​建单独的文件。如果您的模块是test_foo.py,则惯例是将其命名为foo.py

虽然名为test或类似名称的单独目录很常见,但其确切位置并未明确定义。

这与代码的性质无关。它可以是类或函数,只要它是可测试的。当然,让它适合测试并不总是微不足道的。

答案 2 :(得分:0)

不将单元测试放在源文件中的另一个原因是,在python应用程序的分发/打包期间,您可以排除包含测试的所有目录。