在 Python nosetests 中继承测试用例
Inherting test cases in Python nosetests
我已经编写了一个鼻子测试用例,并且想为另一个测试用例继承相同的对象,因为我将只更改一个参数。
所以,为了了解它是如何工作的,我尝试使用 2 类 NoseTesting
和 NoseTestingInherit
.
来模拟以下内容
当我运行这个:
- 我没有看到正在打印的打印语句。
当我 运行 代码时,我得到以下结果:
----------------------------------------------------------------------
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()
我已经编写了一个鼻子测试用例,并且想为另一个测试用例继承相同的对象,因为我将只更改一个参数。
所以,为了了解它是如何工作的,我尝试使用 2 类 NoseTesting
和 NoseTestingInherit
.
当我运行这个:
- 我没有看到正在打印的打印语句。
当我 运行 代码时,我得到以下结果:
---------------------------------------------------------------------- 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()