来自其他文件的测试使用unittest.main()

时间:2019-05-17 18:12:31

标签: python unit-testing spyder python-unittest

我正在使用spyder(3.3.4)运行一些python(3.7)单元测试。我有两个在spyder中打开的使用unittest和unittest.main()的脚本:test_1.py和test_2.py。两者都保存在同一个文件夹中。

如果在运行test_2.py之前先运行test_1.py,我将获得预期的结果;仅运行test_1.py中的测试。

如果我随后运行test_2.py,则将运行test_2.py中的测试,但随后还将运行test_1.py中的测试。如果我在运行test_1.py和运行test_2.py之间重新启动Ipython内核,则只有test_2.py会按预期运行。最奇怪的是,如果我在运行test_1.py后关闭它,则在运行test_2.py时仍会打印test_1.py的输出。

为什么会这样?

我猜想这与__name__变量如何保存在IPython控制台中或unittest.main()如何搜索测试有关?

这是我的两个测试脚本的代码:
test_1.py:

import unittest

class TestStuff(unittest.TestCase):
    def test_1(self):
        print('test 1')
        pass
    def test_2(self):
        print('test 2')
        pass

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

和test_2.py:

import unittest

class TestOtherStuff(unittest.TestCase):
    def test_this(self):
        print('this')
        pass
    def test_that(self):
        print('that')
        pass

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

谢谢!

0 个答案:

没有答案