假设我有一个这样的测试套件:classSafeTests(unittest.TestCase):#snip20testfunctionsclassBombTests(unittest.TestCase):#snip10differenttestcases我目前正在做以下事情:suite=unittest.TestSuite()loader=unittest.TestLoader()safetests=loader.loadTestsFromTestCase(SafeTests)suite.addTests(safetests)ifTARGET!='prod':unsafetests=l
我是Python测试的新手,在这两者之间有一些困难。UnitTest、Pytest和鼻子。我正在构建一个测试库,它需要:安装一个包,更改conf重启deamons,并在Linux设备上取消安装包。哪一个测试框架在这三个测试框架之间最好?在测试结束时,我非常想拥有:n测试成功n跳过测试n测试失败你能提供一些建议吗?干杯 最佳答案 这是一个非常广泛的问题,有很多可用的资源。但是,我会推荐py.test,因为尽管有一套完整的工具,但入门非常容易。在开始之前,鼻比py.test需要更多的配置。UNITTest和Java中的JUnit一样,这
我有许多以编程方式运行的项目:nosetest--with-coverage--cover-html-dir=happy-sauce/问题是对于每个项目,覆盖模块都会覆盖index.html文件,而不是附加到它。有没有办法生成一个组合的super-index.html文件,其中包含我所有项目的结果?谢谢。 最佳答案 您不能合并HTML目录。您可以合并.coverage数据文件,但您必须直接使用coverage,而不是通过nose:$nosetest--with-coverageproj1$mv.coverage.coverage.1
类似于thisquestion,我想让Nose运行一个测试(或所有测试)n次——但不是并行。我在一个项目中有几百个测试;有些是一些简单的单元测试。其他是具有一定程度并发性的集成测试。在调试测试时,我经常想更努力地“打击”测试;bash循环有效,但会产生大量困惑的输出——不再是漂亮的单个“。”对于每个通过的测试。能够在某些试验中击败选定的测试似乎是要求Nose做的一件很自然的事情,但我在文档中的任何地方都找不到它。让Nose执行此操作的最简单方法是什么(除了bash循环)? 最佳答案 您可以writeanosetestasagener
问题:我们使用nose测试运行器已经有一段时间了。有时,我看到我们的测试有eq_()调用:eq_(actual,expected)而不是常见的:self.assertEqual(actual,expected)问题:与标准单元测试框架的assertEqual()相比,使用nose.tools.eq_有什么好处吗?它们实际上是等价的吗?想法:好吧,一方面,eq_更短,但它必须从nose.tools导入,这使得测试依赖于测试运行程序库,它可以使它更难切换到不同的测试运行器,比如py.test。另一方面,我们也经常使用@istest、@nottest和@attrNose装饰器。
是否可以使用nose同时(跨多个进程)运行单个测试并将结果汇总为单个通过/失败结果?我们需要同时多次运行相同的测试,以确保资源锁定不受影响。如果nose不能做到这一点,是否有特定的测试/设计模式可以遵循来实现这一点? 最佳答案 这似乎是您在测试定义本身中想要的东西,因为您想要对结果的聚合进行断言。我会看看使用multiprocessing在测试中。创建一个池以并行执行您的代码。您可以使用Queue汇总结果。 关于python-是否可以使用Nose同时多次运行一个测试?,我们在Stac
我不确定如何让nose模块的__main__处理程序工作。我在测试模块的末尾有这个:if__name__=="__main__":importnosenose.main()这给了我:----------------------------------------------------------------------Ran0testsin0.002sOK但是我通过命令行运行同样的东西,它找到测试并执行它们:MacBook-Pro:Storage_tmeloam$nosetestsFileManager_t.py............E..=====================
我正在尝试将我的测试输出记录到一个文件并同时运行它们。为此,我尝试使用多进程插件和xunit插件。我知道它们不能一起工作,xunit不会记录任何内容,因为mutiprocess不会直接发送输出。https://github.com/nose-devs/nose/issues/2我正在寻找的是允许我将输出写到文件中的任何替代方法。原因是我正在运行Selenium测试,每次出现错误时,堆栈跟踪都非常大,以至于stdout基本上被填满了。缓解的方法也可能有所帮助,关于如何配置日志输出的selenium文档非常稀少。我还尝试了一个非常基本的标准输出重定向:#nosetests>file.txt
我没有从命令行运行Nose测试,而是使用测试运行器为所有测试设置了一些东西,包括与MongoDB的本地测试实例的连接。nose的文档似乎只说明如何通过命令行或位于主目录中的配置文件传递选项。有没有办法在使用脚本运行测试时传递选项,例如--with-xunit? 最佳答案 Nose对第一个参数做了一些偷偷摸摸的事情,所以它没有被解析。我的Nose包裹物做这样的事情:importnoseimportsysargv=sys.argv[:]argv.insert(1,"--with-xunit")nose.main(argv=argv)作为
有没有一种方法可以使用nosetests根据自定义条件跳过整个TestCase?我的意思是unittest.skip*风格。我试过了importunittest@unittest.skip("Noreason")classTestFoo(object):deftest_foo(self):assertFalse我发现这适用于python是否有nosetests方法可以做到这一点,或者我必须创建自己的装饰器?注意事项:我们尝试了python2.7.3、2.7.6和nosetests1.1.2、1.3.0的所有组合。如果该类是从unittest.TestCase继承的,它可以工作,但这不是