在进行MiguelGrinberg的FlaskWeb开发时,我在测试gravatar代码时卡住了,deftest_gravatar(self):u=User(email='john@example.com',password='cat')withself.app.test_request_context('/'):gravatar=u.gravatar()gravatar_256=u.gravatar(size=256)gravatar_pg=u.gravatar(rating='pg')gravatar_retro=u.gravatar(default='retro')withsel
我不想在单元测试中创建真实文件。所以我发现自己经常修补使用无意义的样板文件并为伪文件创建模拟工厂。我想知道如果避免(在这种情况下)这些毫无意义的努力并尝试类似于本地单元测试方法范围内的东西:open=lambdax:StringIO()这样可以吗?或者在这种方法中是否有重大警告/不要发出问题并且会更好与模拟工厂? 最佳答案 这没关系,只要您了解python作用域的工作原理(即本地没问题,全局会导致问题)。您可能还应该考虑到您的monkeypatch将具有与原始版本不同的故障模式,并进行适当的测试以确保您的代码与内置函数正确交互。
我正在尝试使用py.test的fixtures在我的单元测试中,结合unittest。我在项目顶层的conftest.py文件中放置了几个固定装置(如here所述),用@pytest.fixture装饰它们,并且将它们的名称作为参数传递给需要它们的测试函数。灯具正确注册,如py.test--fixturestest_stuff.py所示,但是当我运行py.test时,我得到NameError:未定义全局名称“my_fixture”。这似乎只发生在我使用unittest.TestCase的子类时——但是py.test文档似乎说它与unittest配合得很好.当我使用unittest.Te
编辑:我已经在thisquestion中尝试了一切它并没有解决问题。意思是我试过我尝试手动将FormParser和MultiPartParser添加到设置中的DEFAULT_PARSER_CLASSES,并且我尝试将django.test.TestCase更改为rest_framework.test.APITestCase。我仍然收到相同的错误代码。当我通过命令行向在本地主机上运行的Django应用程序发送PATCH请求时,如下所示:http-a:PATCHhttp://127.0.0.1:8000/post/1/text="newtext"它按预期工作,我收到200OK代码。当我尝试
这个问题在这里已经有了答案:Addingamethodtoanexistingobjectinstance(19个回答)Mockingoutmethodsonanyinstanceofapythonclass(6个答案)关闭7年前。我正在尝试对一个类实例进行猴子修补,但不太明白我如何才能毫无问题地修补一个类方法。>>>classSimple(object):...defmake(self,arg):...returnarg*2...>>>s=Simple()>>>deftimes_four(self,arg):...returnarg*4...>>>Simple.make=times_
在尝试将py.test功能添加到FlaskAPI时,我在源目录上调用py.test时遇到了以下错误消息EImportStringError:import_string()failedfor'config'.Possiblereasonsare:EE-missing__init__.pyinapackage;E-packageormodulepathnotincludedinsys.path;E-duplicatedpackageormodulenametakingprecedenceinsys.path;E-missingmodule,class,functionorvariable;
py.test+gevent如何得到准确的测试覆盖率报告?我已经尝试过显而易见的事情,使用py.test的pytest-cov插件,但它generatesinaccuratereportswhengeventisinuse. 最佳答案 geventcoverageissue最近在coveragepy中得到修复。但是,pytest-cov无法运行coverage>=4。一个可能的修复方法是在不使用pytest-cov插件的情况下,使用较新版本的coverage.py运行py.test。首先,安装coverage>=4并卸载pytest
我正在创建一个使用optimisticconcurrencycontrol的Django库以防止并发写入导致数据不一致。我希望能够为此功能编写单元测试,但我不确定如何实现。我知道Django的单元测试是单线程的,所以我可以设想测试工作的唯一方法是同时打开两个单独的数据库连接(到同一个数据库)并切换DjangoORM在执行查询时使用哪个连接,尽管我不确定在Django中是否可以进行连接切换。使用Django测试并发数据库操作有哪些技巧? 最佳答案 Whataresometechniquesfortestingconcurrentdat
在使用selenium运行django测试时(没有远程,没有xvfb),我总是得到以下异常:Creatingtestdatabaseforalias'default'...Traceback(mostrecentcalllast):File"/usr/lib/python2.7/wsgiref/handlers.py",line86,inrunself.finish_response()File"/usr/lib/python2.7/wsgiref/handlers.py",line127,infinish_responseself.write(data)File"/usr/lib/p
我正在尝试使用来自http://flask.pocoo.org/docs/testing/的建议来测试我的Flask应用程序,但我无法弄清楚如何使用表单数据测试DELETE方法。我的删除方法看起来像这样:fromflask.ext.restfulimportResource,reqparse...defdelete(self):self.reqparse.add_argument('arg1',type=str,required=True,location='form')args=self.reqparse.parse_args()...我想测试一下:defsetUp(self):se