有了unittest模块,我喜欢featuretoskiptests,但它仅适用于Python2.7+。例如,考虑test.py:importunittesttry:importproprietary_moduleexceptImportError:proprietary_module=NoneclassTestProprietary(unittest.TestCase):@unittest.skipIf(proprietary_moduleisNone,"requriesproprietarymodule")deftest_something_proprietary(self):se
我正在使用unittest在Python中编写一个测试用例,看起来像这样:classMyTestCase(unittest.TestCase):defsetUp(self):#...checkifI'monline-mightresultinTrueorFalseself.isOnline=True@unittest.skipIf(notself.isOnline,"Notonline")deftest_xyz(self):#doatestthatreliesonbeingonline但是,这似乎不起作用,我认为是因为@skipIf不能在函数声明的主体之外使用self。我知道我可以在t
这个问题在这里已经有了答案:HowdoyoutestthataPythonfunctionthrowsanexception?(19个回答)关闭4年前。我正在尝试使用unittest在Python中做一个简单的测试,看看如果某个类获得了不适合构造函数的输入,它是否会抛出异常。该类看起来像这样:classSummaryFormula:def__init__(self,summaryFormula):self.atoms={}foratominre.finditer("([A-Z][a-z]{0,2})(\d*)",summaryFormula):symbol=atom.group(1)c
我注意到,当我的Python单元测试在函数顶部包含文档时,有时框架会在测试输出中打印它们。通常,测试输出包含每行一个测试:...ok如果测试有一个表单的文档字符串"""testthatsoandsohappens"""一切都很好。但是如果测试在一行中有一个文档字符串:"""testthatsoandsohappens"""然后测试输出不止一行,包括这样的文档:testthatsoandsohappens...ok我找不到记录在案的行为。有办法关闭它吗? 最佳答案 使用文档字符串的第一行;负责的方法是TestCase.shortDes
我正在使用模拟(http://www.voidspace.org.uk/python/mock/mock.html),遇到了一个我无法找出解决方案的特定模拟案例。我有一个函数多次调用some_function被模拟。deffunction():some_function(1)some_function(2)some_function(3)我只想模拟对some_function的第一次和第三次调用。我想对真正的some_function进行第二次调用。我用http://www.voidspace.org.uk/python/mock/mock.html#mock.Mock.mock_ca
我给出了一个在ipython/jupyternotebook中抛出错误的示例,但作为单个脚本运行良好。importunittestclassSamples(unittest.TestCase):deftestToPow(self):pow3=3**3assertpow3==27if__name__=='__main__':unittest.main()错误如下:---------------------------------------------------------------------------AttributeErrorTraceback(mostrecentcalll
我有一个使用Pythonunittest模块进行单元测试的大型项目。我有一个小方法可以控制系统行为的大部分方面。我需要此方法在UT下运行时返回固定结果以提供一致的测试运行,但对我来说,为每个UT模拟此方法的成本很高。有没有一种方法可以使这个单一方法能够识别单元测试,以便它可以在单元测试下运行时修改其行为? 最佳答案 您可以检查unittest模块是否已加载。它应该只在测试运行时加载。>>>'unittest'insys.modules.keys()False>>>fromunittestimportTestCase>>>'unitt
foo是一个目录嵌套很深的Python项目,在各个子目录下包含了约30个unittest文件。在foo的setup.py中,我有addedacustom"test"command内部运行python-munittestdiscoverfoo'*test.py'请注意,这使用了unittest'sdiscovery模式。由于一些测试非常慢,我最近决定测试应该有“级别”。thisquestion的答案很好地解释了如何让unittest和argparse很好地协同工作。所以现在,我可以运行一个个人单元测试文件,例如foo/bar/_bar_test.py,pythonfoo/bar/_bar
我正在为我的Django应用程序编写单元测试。但是,我不知道如何测试View的HTML输出。有时我可能想检查特定元素是否包含特定值,或者显示了多少这些元素,或诸如此类的事情。我怎样才能做这样的测试?我想要一个使用unittest和django自己的django.test的解决方案。我知道我可以使用Selenium或Pyccuracy(使用Selenium),但由于启动浏览器的巨大开销,Selenium测试非常慢。此外,单元测试开箱即用django-coverage包。 最佳答案 我总能找到BeautifulSoup的组合,以及来自T
我正在为所有共享许多不变量的函数族执行单元测试。例如,调用带有两个矩阵的函数会生成已知形状的矩阵。我想编写单元测试来测试此属性的整个函数系列,而不必为每个函数编写单独的测试用例(特别是因为以后可能会添加更多函数)。执行此操作的一种方法是迭代这些函数的列表:importunittestimportnumpyfromsomewhereimportthe_functionsfromsomewhere.elseimportTheClassclassTest_the_functions(unittest.TestCase):defsetUp(self):self.matrix1=numpy.on