我正在尝试使用nose_parameterized
测试,并想将其用于unittest方法。
from nose.tools import assert_equal
from nose_parameterized import parameterized
import unittest
Class TestFoo(unittest.TestCase):
def setUp(self):
self.user1 = "Bar"
self.user2 = "Foo"
@parameterized.expand([
("testuser1",self.user1,"Bar"),
("testuser2",self.user2,"Foo")
]
def test_param(self,name,input,expected):
assert_equal(input,expected)
但是self
未在decorator函数中定义。有没有解决方法?我知道我可以使用全局类变量,但需要在中使用变量setUp
。
一种解决方法是在装饰器和getattr
测试函数中使用包含属性名称的字符串:
@parameterized.expand([
("testuser1", "user1", "Bar"),
("testuser2", "user2", "Foo")
])
def test_param(self, name, input, expected):
assert_equal(getattr(self, input), expected)
使用这种方法,test_param
假定其input
参数的值是属性名称,应对照对其进行检查expected
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句