【问题标题】:Python's unittest setUp function internal workingPython的unittest setUp函数内部工作
【发布时间】:2017-04-28 03:33:24
【问题描述】:
import unittest

class TestString(unittest.TestCase):

    def setUp(self):
        self.subject_list = ["Maths","Physics","Chemistry"]

    def test_student_1(self):
        self.assertListEqual(self.subject_list,["Maths","Physics","Chemistry"])
        self.subject_list.remove("Maths")

    def test_student_2(self):
        self.assertListEqual(self.subject_list,["Physics","Chemistry"])

if __name__ == "__main__":
    unittest.main()

输出:一次失败,一次成功。

setUp() 是否为每个测试用例加载其中定义的每个变量的副本?如果是,如何使用 setUp() 全局访问变量?

【问题讨论】:

  • 请记住,这不是一个很好的测试 - 不能保证测试将按声明顺序运行,然后甚至不必作为套件运行(您可以选择测试的子集来运行)。
  • 我不知道执行顺序,但似乎 setup 方法为每个测试用例创建了一个局部变量。所以对于上面的例子,执行顺序并不重要。是的,对于全局变量,我必须检查。谢谢。

标签: python python-unittest


【解决方案1】:

setUp 运行每个测试方法。如果您只想运行一次,请使用setUpClass

我的英语不好。所以这个link可以帮助你

import unittest


class TestString(unittest.TestCase):
    subject_list = ["Maths", "Physics", "Chemistry"]

    def test_student_1(self):
        self.assertListEqual(self.subject_list, ["Maths", "Physics", "Chemistry"])
        self.subject_list.remove("Maths")

    def test_student_2(self):
        self.assertListEqual(self.subject_list, ["Physics", "Chemistry"])


if __name__ == "__main__":
    unittest.main()

【讨论】:

  • 那么我需要在python中声明为静态变量吗???如果是的话,如何使用 self 访问它??
猜你喜欢
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
相关资源
最近更新 更多