我有一组测试用例,其中包含一些跳过的测试,但正在为跳过的测试运行setUp方法。根据{{3}}的文档,Skipped测试不会在它们周围运行setUp()或tearDown(),但是当我尝试它时它不是真的。我错过了什么?
import unittest
def fun(x):
return x + 1
class MyTest(unittest.TestCase):
def setUp(self):
print "** in Setup"
def test_02(self):
self.skipTest("** skipping, but dont want to run setUp")
self.assertEqual(fun(4), 5)
运行上述测试时输出
Testing started at 3:48 PM ...
** in Setup
** skipping, but dont want to run setUp
Process finished with exit code 0
答案 0 :(得分:1)
您可以使用unittest.skip
TestCase.skipTest
import unittest
def fun(x):
return x + 1
class MyTest(unittest.TestCase):
def setUp(self):
print "** in Setup"
@unittest.skip('skip please...')
def test_02(self):
self.skipTest("** skipping, but dont want to run setUp")
self.assertEqual(fun(4), 5)
unittest.main()
在这种情况下,unittest标记该方法,以便它知道不打扰运行setUp
或tearDown
。对于您(直接或间接)在测试函数中提升unittest.SkipTest
的版本,已经太晚了 - setUp
已经在那里运行了是任何表示应该跳过测试。