我有一台Jupyter笔记本,我计划反复运行.它有功能,代码结构如下:
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
Run Code Online (Sandbox Code Playgroud)
我想为construct_url和写测试scrape_url.什么是最明智的方法呢?
我考虑过的一些方法:
有没有一种简单的方法可以在Python代码中检测到这些代码是通过Python调试器执行的?
我有一个使用Java代码的小型Python应用程序(感谢JPype).当我调试Python部分时,我也想为嵌入式JVM提供调试选项.
我想像调试任何其他Python代码一样调试Django TestCase:只需调用pdb.set_trace()然后进入交互式会话即可.当我这样做时,我没有看到任何东西,因为测试是在不同的过程中运行的.我正在使用django-discover-runner,但我的猜测是这适用于默认的Django测试运行器.
是否可以在每次错误/失败pdb时使用django-discover-runnera)进入会话,和/或b)只有在我调用pdb.set_trace()我的测试代码时?
这个答案解释了Django创建了另一个进程,并建议使用rpdb2 debugger一部分调用winpdb,但我不想使用winpdb,我宁愿使用ipdb.
这个答案django-nose通过运行如下所示的测试命令解决了问题:./manage.py test -- -s但该选项不可用django-discover-runner.
这个答案显示我可以这样做ipython:
In [9]: %pdb
Automatic pdb calling has been turned ON
Run Code Online (Sandbox Code Playgroud)
这似乎是一个潜在的选择,但ipython每次运行测试时启动它似乎有点麻烦.
最后,这个答案表明nose带有一个--pdb标志,它会pdb出现错误,这就是我想要的.我唯一的选择是切换到django-nose测试跑步者?
我在内置帮助中没有看到任何选项django-discover-runner:
$ python manage.py help test --settings=settings.test
Usage: manage.py test [options] [appname ...]
Runs …Run Code Online (Sandbox Code Playgroud) 我正在使用SQLAlchemy和Flask,如下所示:http://flask.pocoo.org/docs/patterns/sqlalchemy/
我有一个Selenium测试套件,首先运行Firefox,然后运行Chrome.
在每个浏览器开始测试之前,将删除并创建测试数据库(PostgreSQL)中的表.
它适用于第一个浏览器,但对于第二个浏览器,SQL创建/删除尝试只是冻结并且不显示任何错误.
我相信这是因为开放的SQLAlchemy会话,这是正确的吗?
可以调试在Visual Studio 2010上使用pytest库的python测试吗?我在解释器参数上添加了-m pytest但是没有命中断点,我只能运行测试脚本而不调试它.
python ×4
unit-testing ×2
debugging ×1
django ×1
flask ×1
jupyter ×1
pdb ×1
postgresql ×1
ptvs ×1
pytest ×1
sqlalchemy ×1
testing ×1