草庐IT

python - setUpModule、tearDownModule 和 imports 可能在 Nose 底下乱序

我有一些Python单元测试,我正在发现并使用nose运行。我观察到setUpModule()、tearDownModule()和测试模块导入的一些奇怪顺序。我有这个(示例)目录结构:test1.pytest_dir/test2.pytest1.py和test2.py都是这样的:importsysimportunittestdefflushwrite(text):sys.stdout.write(text+'\n')sys.stdout.flush()flushwrite("import%s"%__name__)defsetUpModule():flushwrite("setUp%s"

python - 有没有办法让更新测试在未定义的测试中失败?

默认情况下,当我运行一个包含未定义的given/when/then子句的刷新场景时,该测试被简单地标记为未定义。没有给出关于实际未定义的内容的进一步有用信息。有没有办法改变这种行为以获得更多信息到底是什么未定义? 最佳答案 在https://github.com/rlisagor/freshen/issues/16有一个请求这个的开放工单我还附加了一个链接到一个实现这个的github分支。 关于python-有没有办法让更新测试在未定义的测试中失败?,我们在StackOverflow上找

python - 在 Nose 测试课上使用 __init__(self) 而不是 setup(self) 有缺点吗?

为运行nosetests-sclassTestTemp():def__init__(self):print'__init__'self.even=0defsetup(self):print'__setup__'self.odd=1deftest_even(self):print'test_even'even_number=10asserteven_number%2==self.evendeftest_odd(self):print'test_odd'odd_number=11assertodd_number%2==self.odd打印出以下内容。__init____init____se

python doctest默认命名空间

在我的模块的文档测试中,我想用完整的命名空间引用我的模块,例如:hp.myfunc(1)我想通过以下方式避免使doctests困惑:importhealpyashp在每个doctest中。如果我运行doctest.testmod,我知道我可以使用globs关键字来提供它,而如果我运行nose,我可以使用setup函数。是否有另一种可以同时使用两者的标准方法? 最佳答案 你是如何运行doctests的(没有Nose,就是说)?如果您在尝试运行它们时被cd进入包目录,您将遇到问题(如果您正在进行完全导入,那就是)。我能够使用nosete

python - 如何处理单元测试和 TDD(使用 python + nose)

我一直在尝试掌握TDD和单元测试(在Python中,使用nose)的窍门,并且有一些我一直坚持的基本概念。我已经阅读了很多关于这个主题的文章,但似乎没有任何内容可以解决我的问题-可能是因为它们太基础了,所以人们认为它们已经被理解了。TDD的理念是单元测试在它们测试的代码之前编写。单元测试应该测试一小部分代码(例如函数),为了测试的目的,这些代码是独立的和隔离的。但是,在我看来,这高度依赖于实现。在实现过程中,或在以后的错误修复过程中,可能有必要将一些代码抽象为一个新函数。然后我是否应该通过我所有的测试并模拟该功能以保持它们隔离?这样做肯定会有在测试中引入新错误的危险,并且测试将不再测试

python - 检查功能是否会通过 Nose 测试发出警告

我正在使用nose编写单元测试,并且我想检查函数是否引发警告(该函数使用warnings.warn)。这是轻而易举就能做到的事情吗? 最佳答案 defyour_code():#...warnings.warn("deprecated",DeprecationWarning)#...defyour_test():withwarnings.catch_warnings(record=True)asw:your_code()assertlen(w)>1当然,除了检查长度,您还可以深入检查:断言str(w.args[0])=="已弃用"在p

python - nosetests 覆盖范围包括 Python 包

我正在使用nosetests运行一些单元测试,并使用类似以下内容向我展示我们的代码覆盖率:nosetests-w./test--with-xunit--with-coverage--cover-tests除了我在输出中看到一堆Python包之外,这工作得很好。这是一个示例:ctypes._endian341235%15-20,24-32,50-60ctypes.macholib11100%email292586%56-57,65-66email.errors151493%39如何排除这些包? 最佳答案 试试nosetests--co

Python Nose 测试继承: load unit test fixtures from subclasses

我正在将Python项目的测试套件从unittest转换为nose。该项目现有的框架(基于unittest)相当笨重,包含大量用于测试发现和运行的高度定制的代码,因此我正在尝试迁移到nose以使一切更加精简。但是,我在生成测试套件的代码方面遇到了问题。该项目的框架有两种运行测试的方式。一个是classTestSomething(unittest.TestCase):defsetUp(self):...deftest_x(self):...deftest_y(self):...suite=unittest.TestSuite()suite.addTest(unittest.makeSui

python - Django Nose 这个测试怎么写?

我完全不熟悉Django中的测试。我已经开始安装nose和selenium,现在我想测试以下代码(下面)它发送一条SMS消息。这是实际的代码:views.py@login_requireddefprocess_all(request):"""Iprocessthesendingforasingleorbulkmessage(s)toagrouporsinglecontact.:paramrequest:"""#IfwehadaPOSTthengettherequestpostvalues.ifrequest.method=='POST':batches=Batch.objects.fo

python - 如何通过 python-active-directory 模块中的 setup.py 运行单个 nosetest?

我固执地试图转换Python模块https://github.com/theatlantic/python-active-directory到Python3。你可以在这里看到我的努力https://github.com/nbmorgan/python-active-directory/tree/master3.我已经弄清楚了以下几点,我可以通过以下任一方式在克隆的项目中运行测试套件:exportTEST_CONF_NAME="test.conf";pythonsetup.py测试或exportTEST_CONF_NAME="../test.conf";pythonsetup.pynos