Python单元测试比较列表值
我现在正在尝试写一个简单的测试,目的是比较一个列表和另一个列表的值,这些代码在不同的.py文件里。我对assertListEquals(a,b)
这个函数有点了解,但可能用得不太对,或者我漏掉了什么。当我运行这个模块时,测试套件完全没有任何反应,没有错误代码,也没有其他信息。也许你们能帮我一下。
这是我的测试套件
from MyList import main
import unittest
class TestSuite(unittest.TestCase):
def test_ValueContains(self):
print('test')
testList = [1,2,3]
value = MyList
self.assertListEqual(testList,value)
if __name__== "main":
unittest.main()
这是MyList.py的内容
def main():
MyList = [1,2,3]
main()
我想做的就是检查MyList == testList
,然后在运行测试时能得到一个'Ok'的反馈。
抱歉,我对单元测试还很陌生。
1 个回答
1
试着把你的代码改成这样:
def main():
MyList = [1,2,3]
return MyList
还有
from MyList import main
import unittest
class TestSuite(unittest.TestCase):
def test_ValueContains(self):
print('test')
testList = [1,2,3]
value = main()
self.assertListEqual(testList,value)
if __name__== "__main__":
unittest.main()
问题在于你运行了主方法,但从来没有保存这个值。你可以通过返回这个值来解决这个问题,而不是仅仅把它赋值。
你还需要把底部的if语句从
if __name__ == "main":
改成
if __name__ == "__main__":
因为那才是正确的命名规则。