我有一个笔记本,我计划反复运行。它有一些功能,代码的结构如下:
def construct_url(data):
...
return url
def scrape_url(url):
... # fetch url, extract data
return parsed_data
for i in mylist:
url = construct_url(i)
data = scrape_url(url)
... # use the data to do analysis
我想为construct_url
和scrape_url
编写测试。最明智的方法是什么?
我考虑过的一些方法:
经过一番研究,我找到了自己的解决方案,我有自己的测试代码如下
它的作用是
a
是否等于b
。all()
是否为真。我把这个功能放在笔记本上,然后做了这样的测试
这种方法的优点是
doctest.testmod(verbose=True)
。在我看来,在Jupyter笔记本中进行单元测试的最佳方法是使用以下软件包: https://github.com/JoaoFelipe/ipython-unittest
包文档中的示例:
Python标准测试工具,例如doctest和unittest,可以直接在笔记本中使用。
博士
具有docstring中的函数和测试用例的笔记本单元格:
运行docstring中所有测试用例的笔记本单元格(笔记本中的最后一个):
输出:
单元测试
具有以下功能的笔记本电池:
包含测试用例的笔记本单元格(笔记本中的最后一个)。执行单元时,单元中的最后一行运行测试用例:
输出:
调试失败的测试
在调试失败的测试时,在某个点停止测试用例执行并运行调试器通常是有用的。为此,请在要停止执行的行之前插入以下代码:
例如:
对于本例,下次运行doctest时,执行将在return语句之前停止,并且Python debugger(pdb)将启动。您将直接在笔记本中得到一个pdb提示,它将允许您检查
a
和b
的值、跨行等我用刚才描述的技术创建了一个Jupyter notebook for experimenting。你可以用试试
相关问题 更多 >
编程相关推荐