我正在使用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()
谢谢!