nosetests--pdb让我在错误或失败时停下来,但这对我的需要来说太晚了。在执行期间单步执行代码有助于我调试问题所在。但是,nosetests很有帮助,因为它们允许依赖于相对导入的测试(即包中的测试)。如何在测试执行前设置断点?目前我正在使用:python-mpdb/path/to/my/noseteststestfile.py这个解决方案是不够的。Nosetests会干扰pdb输出,并且我的键盘控件(例如箭头键)已损坏。使用导入pdb;pdb.set_trace()似乎是个好主意,但是nosetests阻止了我对pdb控制台的访问。 最佳答案
当你在nose中运行测试时,我想在命令行上显示测试本身的文件名和行号,尤其是当它失败时,这样我就可以跳转到emacs中的行。我已经在case.py中插入了一些代码来打印名称,我看到我可以制作一个插件来处理prepareTestCase,但我的问题是是否有一个插件可以做到这一点?这是我的代码:nose/case.py:importinspect...defrunTest(self,result):...ifnotisinstance(test,Failure):print("File\"%s\",line%s\n"%(inspect.getsourcefile(test.test),in
我在Github上创建了一个Python模块,它使用Nose进行单元测试,使用Sphinx生成文档。我有两个问题:我是否应该在setup.py(install_requires)的模块依赖项中包含Sphinx和/或Nose,因为它们不是基本模块功能所必需的,只有当您想自己构建文档/运行测试时?出于同样的原因,我是否应该在Github上的模块的requirements.txt中包含Sphinx和/或Nose,但从Github下载我的项目的用户可能更有可能构建文档/运行测试?这是我的第一个Python模块,因此我将不胜感激一些最佳实践/标准建议。 最佳答案
我的测试框架目前基于一个测试运行器实用程序,该实用程序本身派生自Eclipsepydevpython测试运行器。我转而使用Nose,它具有我的自定义测试运行程序的许多功能,但似乎是质量更好的代码。我的测试套件包括许多以前从未运行过的抽象测试类。标准的python测试运行器(和我的自定义测试运行器)只运行unittest.TestCase和unittest.TestSuite的实例。我注意到,自从我切换到Nose后,它几乎运行任何以名称“test”开头的东西,这很烦人......因为我们用于测试混合的命名约定看起来也像Nose的测试类.以前这些从未作为测试运行,因为它们不是TestCas
我有一些代码用于单元测试。但是,它加载的库需要一些Nose测试实际上不需要的数据,因为单元测试模拟了这些数据。我想保护库中的文件读取,以便在Nose测试的情况下不会调用它们。有没有简单的方法来做到这一点?我可能可以使用sys.modules或初始命令行做一些事情,但我更喜欢更优雅的东西,如果它存在的话。 最佳答案 如评论中所述,这段代码的结构一团糟,测试的部分目的是确保我在重构时不会破坏东西......所以,现在(除非有人给我更好的答案),我正在使用:if'nose'notinsys.modules.keys():
我们一直在使用nosetest来运行和收集我们的单元测试(它们都是用我们喜欢的python单元测试编写的)。我们喜欢Nose的地方:使用标准的Python单元测试(我们喜欢这种强加的结构)。支持在xml中报告覆盖率和测试输出(对于jenkins)。我们缺少的是在隔离进程中运行测试同时保持良好错误报告的好方法(我们正在通过python测试C++库,因此段错误不应该是灾难性的)。鼻管似乎不再维护,我们遇到了一些问题。我们正在尝试弄清楚我们是否应该-修理/使用鼻管-切换到nose2并写入nosepipe2。-使用pytest或其他一些测试框架。我们更愿意使用具有良好社区的方法。看来我们的问题
pythonnosetest框架有一些命令行选项来包含、排除和匹配测试的正则表达式,可以分别包含/排除和匹配。但是它们似乎无法正常工作。[kiran@my_redhattest]$nosetests-wcases/-s-v-m='_size'----------------------------------------------------------------------Ran0testsin0.001sOK[kiran@my_redhattest]$grep'_size'cases/test_case_4.pydeftest_fn_size_sha(self):nose框架的
我试图帮助('modules')但没有Nose模块。我什至尝试过pipinstallnose、sudopipinstallnose等。当我尝试用命令行安装nose时,它会抛出SyntaxError:invalidsyntax.Traceback(mostrecentcalllast):File"C:\Python34\plot_cluster_iris.py",line31,infromsklearn.clusterimportKMeansFile"C:\Python34\lib\site-packages\sklearn\cluster\__init__.py",line6,in
我正在使用nose测试使用subprocess.Popen()调用脚本的应用程序。capture都不是或logcapture插件似乎捕获了这个脚本的输出。有没有一种简单的方法可以将此输出通过管道传输到Nose?这是我到目前为止所做的尝试;请注意“捕获我”未被捕获:example.py:if__name__=='__main__':print'Captureme'测试.py:importsubprocessimportsysdeftest_popen():#nose'scapturepluginreplacessys.stdoutwithaStringIOinstance.#subpro
在一个业余项目中,我打算使用nose进行测试,我想将特定类的所有测试放入类中,因为这些测试共享设置和其他功能。但我似乎无法在类中执行设置方法。这是一个经过测试的示例类:classmwe():def__init__(self):self.example=""defsetExample(self,ex):self.example=ex当我不使用类时,测试有效:fromnose.toolsimportok_importmweexampleList=[]defsetUp():print("setup")exampleList.append("1")exampleList.append("2")