Python 统一测试不起作用
Python unitest doesn't work
我开始学习 TDD。我刚刚从 python 开始进行单元测试。当我尝试执行时:
vagrant@vagrant:~/pruebaTestPython$ python test_python_daily_software.py
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
我在其他 links 中读到,我需要在开头用 test_
重命名我自己的函数。然而,这正是我所做的,但它仍然不起作用。
test_python_daily_software.py 文件:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import unittest
import python_daily
class TestPythonSoftware(unittest.TestCase):
def test_should_return_python_when_number_is_3(self):
self.assertEqual('Python', python_daily.get_string(3))
def test_should_return_daily_when_number_is_5(self):
self.assertEqual('Daily', python_daily.get_string(5))
if __name__ == '__main__':
unittest.main()
和python_daily.py文件:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def get_string(number):
return 'Hello'
怎么了?
如果您的 python_daily.py
Python 模块是:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def get_string(number):
return 'Hello'
并且您的 test_python_daily_software.py
测试模块是:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import unittest
import python_daily
class TestPythonSoftware(unittest.TestCase):
def test_should_return_python_when_number_is_3(self):
self.assertEqual('Python', python_daily.get_string(3))
def test_should_return_daily_when_number_is_5(self):
self.assertEqual('Daily', python_daily.get_string(5))
if __name__ == '__main__':
unittest.main()
你应该有:
$ python test_python_daily_software.py
FF
======================================================================
FAIL: test_should_return_daily_when_number_is_5 (__main__.TestPythonSoftware)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_python_daily_software.py", line 11, in test_should_return_daily_when_number_is_5
self.assertEqual('Daily', python_daily.get_string(5))
AssertionError: 'Daily' != 'Hello'
======================================================================
FAIL: test_should_return_python_when_number_is_3 (__main__.TestPythonSoftware)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_python_daily_software.py", line 8, in test_should_return_python_when_number_is_3
self.assertEqual('Python', python_daily.get_string(3))
AssertionError: 'Python' != 'Hello'
----------------------------------------------------------------------
Ran 2 tests in 0.000s
FAILED (failures=2)
注意源代码中的缩进!
我开始学习 TDD。我刚刚从 python 开始进行单元测试。当我尝试执行时:
vagrant@vagrant:~/pruebaTestPython$ python test_python_daily_software.py
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
我在其他 links 中读到,我需要在开头用 test_
重命名我自己的函数。然而,这正是我所做的,但它仍然不起作用。
test_python_daily_software.py 文件:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import unittest
import python_daily
class TestPythonSoftware(unittest.TestCase):
def test_should_return_python_when_number_is_3(self):
self.assertEqual('Python', python_daily.get_string(3))
def test_should_return_daily_when_number_is_5(self):
self.assertEqual('Daily', python_daily.get_string(5))
if __name__ == '__main__':
unittest.main()
和python_daily.py文件:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def get_string(number):
return 'Hello'
怎么了?
如果您的 python_daily.py
Python 模块是:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def get_string(number):
return 'Hello'
并且您的 test_python_daily_software.py
测试模块是:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import unittest
import python_daily
class TestPythonSoftware(unittest.TestCase):
def test_should_return_python_when_number_is_3(self):
self.assertEqual('Python', python_daily.get_string(3))
def test_should_return_daily_when_number_is_5(self):
self.assertEqual('Daily', python_daily.get_string(5))
if __name__ == '__main__':
unittest.main()
你应该有:
$ python test_python_daily_software.py
FF
======================================================================
FAIL: test_should_return_daily_when_number_is_5 (__main__.TestPythonSoftware)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_python_daily_software.py", line 11, in test_should_return_daily_when_number_is_5
self.assertEqual('Daily', python_daily.get_string(5))
AssertionError: 'Daily' != 'Hello'
======================================================================
FAIL: test_should_return_python_when_number_is_3 (__main__.TestPythonSoftware)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_python_daily_software.py", line 8, in test_should_return_python_when_number_is_3
self.assertEqual('Python', python_daily.get_string(3))
AssertionError: 'Python' != 'Hello'
----------------------------------------------------------------------
Ran 2 tests in 0.000s
FAILED (failures=2)
注意源代码中的缩进!