在Python中测试鼻子的测试用例
我已经编写了一个鼻子测试用例,并且希望为另一个测试用例继承相同的对象,因为我将只改变一个参数。在Python中测试鼻子的测试用例
所以,只是为了理解它是如何工作的,我尝试使用2个类NoseTesting
和来模拟以下内容。
当我运行此:
- 我没有看到print语句进行打印。
-
当我运行的代码中,我得到以下结果:
---------------------------------------------------------------------- Ran 0 tests in 0.000s
我不知道哪个测试方法运行 - 它是test_this_method_dup
或test_this_method
?
class NoseTesting():
def test_this_method_dup():
print "Test this method"
class NoseTestingInherit(NoseTesting):
def test_this_method():
print "Test this method"
新代码: -
import unittest
class NoseTesting(unittest.TestCase):
def test_this_method_dup(self,):
print "Test this method"
class NoseTestingInherit(NoseTesting):
def test_this_method(self,):
print "Test this method"
输出 :
test_this_method_dup (nosetesting.NoseTesting) ... ok
test_this_method (nosetesting.NoseTestingInherit) ... ok
test_this_method_dup (nosetesting.NoseTestingInherit) ... ok
----------------------------------------------------------------------
Ran 3 tests in 0.003s
OK
正如@IanAuld所说,nosetest
没有发现你的测试。根据你的例子,如果你不重写方法,你不需要显式重写方法,因为它是隐式继承的。
class NoseTesting(unittest.TestCase):
def test_this_method_dup(self):
print "Test this method"
class NoseTestingInherit(NoseTesting):
# implicitly inherit test_this_method_dup()
# self.test_this_method_dup()
我继承后,在输出中看到3次运行。我已经给出了上面的最新代码...我不知道为什么test_this_method_dup运行两次.. – user1050619
@ user1050619继承使nosetest运行重复测试。按照这个链接http://erikzaadi.com/2012/09/13/inheritance-within-python-unit-tests/使用魔法属性来忽略基础测试。 – PieOhPah
看起来你的测试类都没有被检测为有测试用例。我对鼻子测试不熟悉,你是否应该从一些'TestCase'基类继承,或者以某种特殊的方式命名测试类,以便测试框架能够识别它们? – Blckknght