在 Python nosetests 中继承测试用例

Inherting test cases in Python nosetests

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

所以,为了了解它是如何工作的,我尝试使用 2 类 NoseTestingNoseTestingInherit.

来模拟以下内容

当我运行这个:

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

    ----------------------------------------------------------------------
    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

来自 nosetest 文档:

A test class is a class defined in a test module that matches testMatch or is a subclass of unittest.TestCase.

您的 类 与该模式不匹配。

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