所以我正在为我的所有脚本创建单元测试,其中很多都不是oo,并且有主循环代码。我想知道与受影响的脚本相关的创建unittest类的位置标准是什么。单元测试应该在单独的文件中导入脚本,然后对主循环代码进行功能化吗?或者它可以在相关脚本的末尾推送?
答案 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应用程序的分发/打包期间,您可以排除包含测试的所有目录。