所以,下面是两个班级。当我对它们运行unittest(python -m unittest -v unit_test
时,此代码保存为“unit_test.py”)然后执行第二个类中的测试,但不执行第一个类中的测试。有什么可能出错的线索?
重要的一切似乎都是相同的,但Python只是从第一类的def setUp(self):
行跳到第二类。 (因为它会跳过那里,我认为发布该类中显示的hac.process_lines()
代码并不重要。)任何帮助都非常感谢。谢谢!
class TestClient(unittest.TestCase):
"""
Tests the central clause of the program
"""
def setUp(self):
self.store = {}
self.example_1 = ['set foo bar', 'get foo', 'set baz bat', 'list',
'delete foo', 'get baz']
self.example_2 = ['auth test testpw', 'set foo bar', 'get foo', 'set \
baz bat', 'list', 'delete foo', 'get baz']
def correct_dictionary_v1(self):
self.store = hac.process_lines(self.example_1)
self.assertEqual(self.store, {'baz': 'bat'})
def correct_dictionary_v2(self):
self.store = hac.process_lines(self.example_2)
self.assertEqual(self.store, {'baz': 'bat'})
class TestGetValue(unittest.TestCase):
"""
Tests the 'get' command function
"""
def setUp(self):
self.store = {}
self.key = 'key'
self.value = 'value'
def test_good_input(self):
self.store = {'key': 'value'}
self.assertEqual('value', hac.get_value(self.store, self.key))
def test_missing_key(self):
self.store = {}
self.assertEqual(1, hac.get_value(self.store, self.key))
答案 0 :(得分:4)
测试必须以以'test'
开头的名称开头。因此,要在第一堂课中运行测试,请将correct_dictionary_v1
更改为test_correct_dictionary_v1
,将correct_dictionary_v2
更改为test_correct_dictionary_v2
。
来自the docs:
TestLoader使用'test'方法名称前缀自动识别测试方法。
答案 1 :(得分:0)
在每个测试方法之前运行测试用例的setUp
方法。您的TestClient
没有测试方法。如果您希望correct_dictionary_v1
和v2
成为测试方法,请使用“test”一词开头。