草庐IT

python - 使用 nosetests 的测试超时

我正在设置我的nosetests环境,但似乎无法使超时正常工作。我希望nose发现的每个测试都有一个x秒(比如2)超时。我尝试了以下方法:nosetests--processes=-1--process-timeout=2这工作得很好,但我注意到以下几点:对于一些简单的测试用例,并行测试需要更长的时间当测试超时(因此失败)时,Nose不会返返回告有谁知道我怎样才能让这样的超时工作?我更希望它在没有并行测试的情况下工作,但只要我得到测试已超时的反馈,这就不是问题。 最佳答案 我不知道这是否会让你的生活更轻松,但nose.tools中有

python - 通过 Nose 测试与多个实体组运行事务时出错

我正在使用GoogleAppEngine框架使用Python2.7构建一个应用程序。为了测试我的应用程序,我使用nosegae插件通过nosetests运行了几个测试。我使用以下命令运行它们:nosetests--with-gae--gae-lib-root=/usr/local/google_appengine/-w.-w*/test/-v在我的应用程序的模型层中,我需要运行多个影响同一事务内多个实体组的数据库操作。我通过使用db包的run_in_transaction_options函数来做到这一点:https://developers.google.com/appengine/d

python - 为什么这个已弃用的 Factory.set_creation_function 的替代方法不能与 nosetests 一起使用?

FactoryBoy弃用了set_creation_function(参见ChangeLog2.6.1)并建议开发人员Replacefactory.set_creation_function(SomeFactory,creation_function)withanoverrideofthe_create()methodofSomeFactory我有i)许多派生工厂类和ii)我的数据库session在另一个模块中实例化,所以我尝试替换https://github.com/mattupstate/overholt中的工作示例下面的第二个代码块。PyCharm警告我没有使用“db”导入,所以

python - 让 Nose 忽略名称中带有 'test' 的函数

nose发现过程会找到名称以test开头的所有模块,以及其中所有名称中包含test的函数,并尝试将它们作为单元测试运行。参见http://nose.readthedocs.org/en/latest/man.html我在文件accounts.py中有一个名为make_test_account的函数。我想在名为test_account的测试模块中测试该功能。所以在那个文件的开头我做了:fromfoo.accountsimportmake_test_account但现在我发现nose将函数make_test_account视为单元测试并尝试运行它(失败是因为它没有传递任何必需的参数)。如何

python - Nose 、unittest.TestCase 和元类 : auto-generated test_* methods not discovered

这是unittestandmetaclass:automatictest_*methodgeneration的后续问题:对于这个(固定的)unittest.TestCase布局:#!/usr/bin/envpythonimportunittestclassTestMaker(type):def__new__(cls,name,bases,attrs):callables=dict([(meth_name,meth)for(meth_name,meth)inattrs.items()ifmeth_name.startswith('_test')])formeth_name,methinc

python - 运行特定的 Django 测试(使用 django-nose?)

我有一个非常复杂的tests.py文件。实际上,测试类和方法是在运行时生成的w/type(考虑辅助文件中列出的数据)。我正在按照以下方式做事(更多代码见下文):klass=type(name,(TestCase,),attrs)setattr(current_module,name,klass)仅供引用,使用通常的django测试运行程序,所有这些测试都会在执行./manage.pytestmyapp时运行(感谢上面显示的setattr)。我想做的是只运行这些测试的一部分,而不是手动列出它们的名字。例如,我可以在类名或方法名中给每个测试“标签”,以便我可以对它们进行过滤。例如,我将执行

python - 如何在 python nosetest 中绕过 "sys.exit()"?

貌似pythonnosetest遇到sys.exit()会退出,mocking这个builtin也不起作用。 最佳答案 您可以trycatchSystemExit异常(exception)。当有人调用sys.exit()时引发。withself.assertRaises(SystemExit):myFunctionThatSometimesCallsSysExit() 关于python-如何在pythonnosetest中绕过"sys.exit()"?,我们在StackOverflow上

python - 我如何告诉 django-nose 我的测试在哪里?

我在测试目录中对Django应用程序进行了测试:my_project/apps/my_app/├──__init__.py├──tests│├──__init__.py│├──field_tests.py│└──storage_tests.py├──urls.py├──utils.py└──views.pyDjango测试运行程序要求我将suite()函数放入应用程序测试目录的__init__.py文件中。该函数返回将在我执行时运行的测试用例$pythonmanage.py测试我安装了django-nose。当我尝试使用django-nose运行测试时,运行了0个测试:$pythonm

python - 我如何告诉 django-nose 我的测试在哪里?

我在测试目录中对Django应用程序进行了测试:my_project/apps/my_app/├──__init__.py├──tests│├──__init__.py│├──field_tests.py│└──storage_tests.py├──urls.py├──utils.py└──views.pyDjango测试运行程序要求我将suite()函数放入应用程序测试目录的__init__.py文件中。该函数返回将在我执行时运行的测试用例$pythonmanage.py测试我安装了django-nose。当我尝试使用django-nose运行测试时,运行了0个测试:$pythonm

Python 2.7 单元测试 : Assert logger warning thrown

我正在尝试为一段python代码编写单元测试,该代码在某些条件下通过logger.warn('...')发出警告。我如何断言此警告已被记录?我注意到assertLogged至少在Python3.4之前不可用,不幸的是我在2.7中。 最佳答案 Python3.4添加到unittest正是该功能。参见TestCase.assertLogs.API非常易于使用:withself.assertLogs('foo',level='INFO')ascm:logging.getLogger('foo').info('firstmessage')l