我只是想在下面执行一个简单的测试用例列表,
cin
然后用这个命令测试它:" nosetests3 -s testinheritence.py"但我坚持不懈地遇到这些例外,它抱怨道,
# testinheritence.py
import unittest
class heleClass(object):
def execute_test_plan(self, test_plan):
self.assertEqual("a", "a")
class TestParent(heleClass):
def testName(self):
test_plan = {"a": 1}
self.execute_test_plan(test_plan)
class SqlInheritance(unittest.TestCase, TestParent):
print ("get into inheritance")
if __name__ == "__main__":
unittest.main()
使用" python -m unittest testinheritence"运行它,测试用例将成功通过,我用谷歌搜索了但是还没有找到解决方法,我在这里错过了什么?任何回应都非常高兴!
答案 0 :(得分:2)
这里有几个问题。您的heleClass
不是正确的单元测试类(您使用object
作为您的父级。因此它没有self.assertEqual()
方法。此外,鼻子认为“execute_test_plan”是一个测试,并且调用它作为测试的一部分,但它失败了,因为它需要一个参数。尝试将execute_test_plan
标记为@nottest
:
import unittest
from nose.tools import nottest
class heleClass(unittest.TestCase):
@nottest
def execute_test_plan(self, test_plan):
self.assertEqual("a", "a")
class TestParent(heleClass):
def testName(self):
test_plan = {"a": 1}
self.execute_test_plan(test_plan)
if __name__ == "__main__":
unittest.main()
答案 1 :(得分:0)
nose
也将抱怨,如果您将测试助手方法移至测试模块中的顶级功能。
我可以通过在测试模块中将函数设为私有,更改名称以_
开头来解决此问题。然后nose
将忽略它。