在Python中测试鼻子的测试用例

问题描述:

我已经编写了一个鼻子测试用例,并且希望为另一个测试用例继承相同的对象,因为我将只改变一个参数。在Python中测试鼻子的测试用例

所以,只是为了理解它是如何工作的,我尝试使用2个类NoseTesting和来模拟以下内容。

当我运行此:

  1. 我没有看到print语句进行打印。
  2. 当我运行的代码中,我得到以下结果:

    ---------------------------------------------------------------------- 
    Ran 0 tests in 0.000s 
    

我不知道哪个测试方法运行 - 它是test_this_method_duptest_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 
+0

看起来你的测试类都没有被检测为有测试用例。我对鼻子测试不熟悉,你是否应该从一些'TestCase'基类继承,或者以某种特殊的方式命名测试类,以便测试框架能够识别它们? – Blckknght

正如@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() 
+0

我继承后,在输出中看到3次运行。我已经给出了上面的最新代码...我不知道为什么test_this_method_dup运行两次.. – user1050619

+0

@ user1050619继承使nosetest运行重复测试。按照这个链接http://erikzaadi.com/2012/09/13/inheritance-within-python-unit-tests/使用魔法属性来忽略基础测试。 – PieOhPah

nosetest文档:

测试类是一个测试模块中定义的一类匹配testMatch或是unittest.TestCase的子类。

您的课程不符合该模式。