Python单元测试比较列表值

1 投票
1 回答
5213 浏览
提问于 2025-04-18 15:08

我现在正在尝试写一个简单的测试,目的是比较一个列表和另一个列表的值,这些代码在不同的.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__":

因为那才是正确的命名规则。

撰写回答