Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python单元测试自编API模块-在单独的项目中更好?_Python_Unit Testing_Python Unittest - Fatal编程技术网

Python单元测试自编API模块-在单独的项目中更好?

Python单元测试自编API模块-在单独的项目中更好?,python,unit-testing,python-unittest,Python,Unit Testing,Python Unittest,我有两个项目使用相同的API模块,这是我自己编写的。这些API模块封装了从pypi库导入的现有函数 如果我必须为我的API编写单元测试,那么单元测试模块应该出现在使用我的API的每个项目中,还是应该有一个单独的API测试项目 API是一个适用于所有人的API,所以从逻辑上讲,我会为API测试打开一个单独的项目,但是如果这些项目在不拥有API测试项目的人之间传递,会怎么样?然后,如果API中内部导入函数的实现发生变化,则需要进行单元测试 我想这个问题是关于任何语言的API,但是我的项目特别是在Py

我有两个项目使用相同的API模块,这是我自己编写的。这些API模块封装了从pypi库导入的现有函数

如果我必须为我的API编写单元测试,那么单元测试模块应该出现在使用我的API的每个项目中,还是应该有一个单独的API测试项目

API是一个适用于所有人的API,所以从逻辑上讲,我会为API测试打开一个单独的项目,但是如果这些项目在不拥有API测试项目的人之间传递,会怎么样?然后,如果API中内部导入函数的实现发生变化,则需要进行单元测试


我想这个问题是关于任何语言的API,但是我的项目特别是在Python中。

< P>我建议把代码和它的单元测试看作属于同一个组件。例如,它们应该位于版本控制系统的同一存储库中。例如,如果代码发生了变化,很可能单元测试也需要相应地调整。因此,将它们视为不同的组成部分没有多大价值

以您的两个项目和它们都使用的API为例:API及其测试构成了一个组件。因此,API在概念上是独立于项目开发的。例如,如果在项目P1的工作过程中检测到API中的错误,则直接在其存储库中修复API组件(可能首先扩展API的单元测试套件以捕获该错误),创建API组件的新版本,然后在P1中使用该新版本,但也可能会更新P2以使用新版本

<>您可以考虑将API组件封装在不包含单元测试的客户端(项目P1和P2)中,如果您愿意的话。在任何情况下,API的开发都不会在P1或P2中进行,而是直接在API的存储库中进行

总结:不要将代码及其测试分离到单独的模块中。相反,将代码及其测试放在一个存储库中,但与客户机分开