最新用python写些自动化脚本,在调用model为Unittest时,总是调用不成功,报错【ValueError: no such test method in <class 'mytestcase.MyTestCase'>: runTest】,以下为部分代码及解决方案。
testA.py代码如下:
# testA.py import unittest class TestA(unittest.TestCase): def test_one(self)
print('我是第一个用例方法')现在我想在另一个testB.py里面调用A里面的test_one方法
# testB.py
import testA
test_case =TestA().test_one()
test_suite = unittest.TestLoader().loadTestsFromTestCase(test_case)
test_suite_result = unittest.TestResult()
test_suite.run(test_suite_result)
for err in test_suite_result.errors:
print err
for fail in test_suite_result.failures:
print fail
此时报错:
File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py", line 191, in __init__
(self.__class__, methodName))
ValueError: no such test method in <class 'mytestcase.MyTestCase'>: runTest
问题处理:
原因是因为sub_class里缺少runTest方法
直接在testA的类中增加
def runTest(self):
pass
即:
# testA.py import unittest class TestA(unittest.TestCase): def test_one(self)
print('我是第一个用例方法')
这样的话就可以调用model为[unittest.testcase]类型的文件方法了。def runTest(self):
pass
【补充】测试过程中,还曾出现【unbound method create() must be called with SocialUrl instance as first argument】这种错误,原因是没有将引用的类给实例化。也就是说如果我现在调用TestA的话,需要使用testA().test_one()方法。而不是testA.test_one()