在附加的脚本中为什么0个测试用例正在运行
import unittest
def smg():
def add(x, y):
return x + y
class SimpleTest(unittest.TestCase):
def testadd1(self):
self.assertEquals(add(4, 5), 9)
if __name__ == '__main__':
unittest.main()
smg()
为
Ran 0 tests in 0.000s
可以做些什么来修复它,请帮助
您可能对unittest感兴趣。TextTestRunner:
一个基本的测试运行器实现,输出结果到一个流。
示例用法:
然而,如果你想定制你的测试套件的构建,你可以自己做:
def suite(): suite = unittest.TestSuite() suite.addTest(WidgetTestCase('test_default_widget_size')) suite.addTest(WidgetTestCase('test_widget_resize')) return suite if __name__ == '__main__': runner = unittest.TextTestRunner() runner.run(suite())
为您的情况运行示例。
src.py
def add(x, y):
print("Add", x, y)
return x + y
testrongrc.py
import unittest
from src import add
class SimpleTest(unittest.TestCase):
def testadd1(self):
self.assertEqual(add(4, 5), 9)
if __name__ == '__main__':
unittest.main()
运行测试是正常的
$ python test_src.py # Using unittest
Add 4 5
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
$ pytest -q # Using pytest
.
1 passed in 0.06s
现在如果你想通过函数手动调用它。
run_tests.py
import unittest
import test_src
def suite():
suite = unittest.TestSuite()
suite.addTest(test_src.SimpleTest('testadd1'))
return suite
def run():
runner = unittest.TextTestRunner()
runner.run(suite())
# run() # Uncomment if you want to try to run it as a script e.g. <python run_tests.py>
您现在可以导入文件并在需要时调用run()
:
$ python3
>>> import run_tests
>>> run_tests.run()
Add 4 5
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
>>>
取出smg
函数内部的代码,然后使用python -m unittest <Your Filename>.py
从命令行运行测试。
你的代码看起来像这样:
import unittest
def add(x, y):
return x + y
class SimpleTest(unittest.TestCase):
def testadd1(self):
self.assertEquals(add(4, 5), 9)
if __name__ == '__main__':
unittest.main()
对于assertEquals
,您也可能得到一个弃用警告。您可能需要将其更改为assertEqual
。