我有这样一种情况,对于某些测试,我需要使用与我为所有测试定义的不同的设置方法,为此,我认为应该使用@with_setup的鼻部装饰器。
然而,这似乎不起作用。
代码:
import unittest
from nose.tools.nontrivial import with_setup
__author__ = 'gaurang_shah1'
class Demo(unittest.TestCase):
def setup_func(self):
print "setup_func"
def teardown_func(self):
print "teardown function"
def setUp(self):
print "setup"
@with_setup(setup_func, teardown_func)
def test_setup(self):
print "test setup"我期待下面的输出,
setup_func
测试设置
teardown_func
然而,我得到了以下输出,我在这里做错了什么吗?
设置
测试设置
发布于 2014-10-01 05:04:58
您正在构造一个unittest子类,因此它将始终使用unittest.setUp和tearDown方法进行测试。如documentation中所述
请注意,with_setup仅适用于测试函数,不适用于测试方法或TestCase子类内部。
如果你想使用@with_setup,把这个类一起去掉:
from nose.tools.nontrivial import with_setup
def setup_func():
print "setup_func"
def teardown_func():
print "teardown function"
@with_setup(setup_func, teardown_func)
def test_something():
print "test"或者更好的方法是,创建另一个执行自定义setUp函数的单元测试类。
https://stackoverflow.com/questions/26118151
复制相似问题