Questions tagged «nose»

鼻子是另一个Python单元测试发现和运行过程。它旨在尽可能合理地模仿py.test的行为。

5
如何在Pylons中使用鼻子进行单个测试
我在test / functional目录中有一个带有一堆测试的Pylons 1.0应用程序。我得到的测试结果很奇怪,我只想运行一个测试。鼻子文档说我应该能够在命令行中传递测试名称,但是无论我做什么我都会得到ImportErrors 例如: nosetests -x -s sometestname 给出: Traceback (most recent call last): File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/loader.py", line 371, in loadTestsFromName module = resolve_name(addr.module) File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/util.py", line 334, in resolve_name module = __import__('.'.join(parts_copy)) ImportError: No module named sometestname 我收到相同的错误 nosetests -x -s appname.tests.functional.testcontroller 正确的语法是什么?

9
Python鼻子导入错误
我似乎无法获得鼻子测试框架来识别文件结构中测试脚本下的模块。我设置了最简单的示例来演示该问题。我会在下面解释。 这是包文件的结构: ./__init__.py ./foo.py ./tests ./__init__.py ./test_foo.py foo.py包含: def dumb_true(): return True tests / test_foo.py包含: import foo def test_foo(): assert foo.dumb_true() 两个init .py文件均为空 如果我nosetests -vv在主目录(foo.py所在的目录)中运行,则会得到: Failure: ImportError (No module named foo) ... ERROR ====================================================================== ERROR: Failure: ImportError (No module named foo) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python/site-packages/nose-0.11.1-py2.6.egg/nose/loader.py", line …

4
使用鼻子测试--pdb选项设置断点
nosetests --pdb让我在出现错误或失败时停止操作,但这对我来说太迟了。在执行过程中单步执行代码可以帮助我调试问题所在。 但是,鼻子测试很有用,因为它们允许依赖于相对进口的测试(即包装中的测试)。 在执行测试之前如何设置断点?目前,我正在使用: python -m pdb /path/to/my/nosetests testfile.py 该解决方案是不够的。Noestest会干扰pdb的输出,并且我的键盘控件(例如,箭头键)已损坏。 使用import pdb; pdb.set_trace()似乎是个好主意,但是鼻子测试阻止了我对pdb控制台的访问。
88 python  testing  nose  pdb 

1
鼻子vs pytest-我应该选择哪一个(主观)差异?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 我已经开始处理一个相当大的(多线程)Python项目,其中包含(单元)测试的负载。那里最重要的问题是,运行应用程序需要预设的环境,该环境由上下文管理器实现。到目前为止,我们利用了补丁版本的单元测试运行器,它将在此管理器中运行测试,但是不允许在不同的测试模块之间切换上下文。 鼻子和pytest都支持这种东西,因为它们支持多种粒度的夹具,因此我们正在考虑切换到鼻子或pytest。这两个库都将支持“标记”测试,并且仅运行这些标记的子集,这也是我们也想做的事情。 我一直在浏览一下鼻子和pytest的文档,据我所知,这些库的大部分基本上支持相同的功能,只是它的名称可能不同,或者需要稍微不同的语法。另外,我注意到可用插件中的一些细微差异(鼻子具有多进程支持,例如pytest似乎没有) 看起来,细节决定了魔鬼,这(通常至少)意味着个人品味,我们最好选择最适合我们个人品味的图书馆。 因此,我想提出一个主观的论证,为什么我应该选择鼻子或pytest才能选择最适合我们需求的库/社区组合。
85 python  pytest  nose 

7
如何从“ python setup.py测试”运行unittest发现?
我试图弄清楚如何python setup.py test运行python -m unittest discover。我不想使用run_tests.py脚本,也不想使用任何外部测试工具(例如nose或py.test)。如果解决方案仅适用于python 2.7,就可以了。 在中setup.py,我想我需要在config的test_suiteand和/或test_loader字段中添加一些内容,但是我似乎找不到能正常工作的组合: config = { 'name': name, 'version': version, 'url': url, 'test_suite': '???', 'test_loader': '???', } 只能使用unittestpython 2.7内置的功能吗? 仅供参考,我的项目结构如下: project/ package/ __init__.py module.py tests/ __init__.py test_module.py run_tests.py <- I want to delete this setup.py 更新:这可能与unittest2但我想只使用unittest 来自https://pypi.python.org/pypi/unittest2 unittest2包括一个非常基本的setuptools兼容测试收集器。在setup.py中指定test_suite ='unittest2.collector'。这将从包含setup.py的目录中的默认参数开始测试发现,因此,它可能是最有用的示例(请参阅unittest2 / collector.py)。 目前,我仅使用一个名为的脚本run_tests.py,但希望通过移至仅使用的解决方案来摆脱这种情况python setup.py test。 这是run_tests.py我希望删除的: …

3
用补丁模拟两个功能进行单元测试
我有一个要单元测试的功能,其中包含调用其他两个功能的功能。我不确定如何使用补丁同时模拟两个函数。我在下面提供了我的意思的示例。当我进行鼻子测试时,测试通过了,但是我觉得必须有一种更清洁的方法来进行测试,而我实际上并不了解有关f.close()的内容。 目录结构如下所示: program/ program/ data.py tests/ data_test.py data.py: import cPickle def write_out(file_path, data): f = open(file_path, 'wb') cPickle.dump(data, f) f.close() data_test.py: from mock import MagicMock, patch def test_write_out(): path = '~/collection' mock_open = MagicMock() mock_pickle = MagicMock() f_mock = MagicMock() with patch('__builtin__.open', mock_open): f = mock_open.return_value f.method.return_value = path with …

11
在鼻子下面测试Python代码时应如何验证日志消息?
我正在尝试编写一个简单的单元测试,该测试将验证在特定条件下我的应用程序中的类将通过标准日志记录API记录错误。我想不出最干净的方法来测试这种情况。 我知道鼻子已经通过它的日志记录插件捕获了日志输出,但这似乎旨在作为失败测试的报告和调试辅助工具。 我可以看到两种方法: 以零散方式(mymodule.logging =模拟日志模块)或使用适当的模拟库来模拟日志记录模块。 编写或使用现有的鼻子插件捕获输出并进行验证。 如果我采用前一种方法,那么我想知道在嘲笑日志记录模块之前将全局状态重置为原来状态的最干净方法是什么。 期待您对此的提示和技巧...

7
如何在鼻子中设置self.maxDiff以获取完整的差异输出?
在Python 3.3.0中使用鼻子1.2.1时,有时会收到类似于以下内容的错误消息 ====================================================================== FAIL: maxdiff2.test_equal ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/local/lib/python3.3/site-packages/nose/case.py", line 198, in runTest self.test(*self.arg) File "/Users/loic/cmrsj/Calculus_II/scrap/maxdiff2.py", line 32, in test_equal assert_equal(str1, str2) AssertionError: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus.\n [truncated]... != 'Suspendisse lectus leo, consectetur in tempor sit amet, placerat …
78 python  nose 

4
ModuleNotFoundError:没有名为“ numpy.testing.nosetester”的模块
我正在使用决策树,并且引发了该错误。当我使用反向传播时,出现了相同的情况。我该如何解决?(对不起,我英语不好) import pandas as pd import numpy as np a = np.test() f = open('E:/lgdata.csv') data = pd.read_csv(f,index_col = 'id') x = data.iloc[:,10:12].as_matrix().astype(int) y = data.iloc[:,9].as_matrix().astype(int) from sklearn.tree import DecisionTreeClassifier as DTC dtc = DTC(criterion='entropy') dtc.fit(x,y) x=pd.DataFrame(x) from sklearn.tree import export_graphviz with open('tree.dot','w') as f1: f1 = export_graphviz(dtc, feature_names = …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.