python-3.x assertRaises(或assert_raises)是否存在于nose2中

vmpqdwk3  于 2023-11-20  发布在  Python
关注(0)|答案(2)|浏览(98)

我正在尝试为一个python项目写一些nose测试。自从我上次写一些nostests已经有一段时间了(一年左右),看起来nose2是现在建议使用的模块。
我想写一个测试来检查当错误的值被发送到def函数时是否会引发异常。我知道在nose is中是这样使用的:

from nose.tools import assert_raises

def add(x, y):
    return x + y

assert_raises(TypeError, add, 2, "0")

字符串
我只是找不到nose2的等效使用示例,这些导入都不起作用(有人建议nose2更像是unittest而不是nose,后者似乎使用了assertRaises):

from nose2 import assert_raises
from nose2 import assertRaises
from nose2.tools import assert_raises
from nose2.tools import assertRaises


对nose2文档网站的搜索没有提到assert_raises或assertRaises

wtzytmuj

wtzytmuj1#

看起来你可以在nose2.tools.such.helper中找到它。不,我在文档中也找不到它。
注意,这里有Helperhelper;后者只是前者的单例示例。为了消除任何混淆,这是它们在后台所做的一切:

class Helper(unittest.TestCase):

    def runTest(self):
        pass

helper = Helper()

字符串
也就是说,它只是通过一个虚拟的TestCase示例公开unittest assert* 方法。

dgenwo3n

dgenwo3n2#

nose2.tools.such.helper不再可用。
正确的解决方案是知道在nose2中,所有的测试类都必须从unittest.TestCase继承,因此您切换到使用self.assertRaises

相关问题