在Python测试中使用测试用例

时间:2015-08-14 22:10:55

标签: python nosetests

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

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

当我运行时:

  1. 我没有看到正在打印的打印声明。
  2. 当我运行代码时,我得到以下结果:

    ----------------------------------------------------------------------
    Ran 0 tests in 0.000s
    
  3. 我不确定使用哪种测试方法 - 是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
    

2 个答案:

答案 0 :(得分:1)

来自nosetest文档:

  

测试类是在测试模块中定义的类,它匹配 testMatch或是unittest.TestCase的子类

您的课程与该模式不符。

答案 1 :(得分:0)

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