加载程序:测试类

从类中加载测试 not unittest.TestCase 子类。

此插件响应 loadTestsFromModule() 通过为模块中类中的测试方法添加测试用例 not 的子容器 unittest.TestCase ,但其名称(小写)与配置的测试方法前缀匹配。

这里不加载生成器或具有参数列表的测试类方法,而是通过 nose2.plugins.loader.generators.Generatorsnose2.plugins.loader.parameters.Parameters 插件。

此插件还实现 loadTestsFromName() 启用从命令行上传递的点类名和方法名加载测试。

此插件使其他测试加载程序可以使用两个附加的插件挂钩:

nose2.plugins.loader.testclasses.loadTestsFromTestClass(self, event)
参数

event -- A LoadFromTestClassEvent 实例

插件可以使用这个钩子从一个不是 unittest.TestCase 子类。要防止其他插件从测试类加载测试,请设置 event.handledTrue 并返回一个测试套件。插件还可以将测试附加到 event.extraTests . 通常情况下,这就是您想要的,因为它允许其他插件从测试用例中加载它们的测试。

nose2.plugins.loader.testclasses.getTestMethodNames(self, event)
参数

event -- A GetTestMethodNamesEvent 实例

插件可以使用这个钩子来限制或扩展将从非 unittest.TestCase 通过标准的nose2测试加载程序插件(以及其他与钩子结果相关的插件)进行子类划分。要强制指定名称列表,请设置 event.handledTrue 并返回一个列表:这个准确的列表将是从测试用例加载的唯一测试用例名称。插件还可以通过将测试名称附加到 event.extraNames ,并通过将测试名称附加到 event.excludedNames .

关于测试类

测试类是看起来像测试的类,但不是 unittest.TestCase . 测试类支持与测试用例相同的所有测试类型和夹具。

要“看起来像测试”,类的名称必须与配置的测试方法前缀(默认情况下为“test”)相匹配。测试类也必须能够在没有参数的情况下被实例化。

它们对什么有用?大多数情况下,测试类由于某些原因不能子类 unittest.TestCase . 否则,测试类测试和测试用例在功能上在nose2中是等效的,并且测试用例有更广泛的支持,所有这些都有助于 *assert* *方法——所以当有疑问时,应该使用 unittest.TestCase .

下面是一个测试类的例子:

class TestSomething(object):

    def test(self):
        assert self.something(), "Something failed!"

配置 [test-classes]

always-on
违约

类型

布尔

示例配置

默认配置相当于在 unittest.cfg 文件。

[test-classes]
always-on = True

插件类引用:testclassloader

class nose2.plugins.loader.testclasses.TestClassLoader(*args, **kwargs)[源代码]

加载测试函数的加载程序插件

loadTestsFromModule(event)[源代码]

从event.module加载测试类

loadTestsFromName(event)[源代码]

如果指定了测试类/方法,则从event.name加载测试

register()[源代码]

安装额外的挂钩

添加新的插件挂钩:

  • LoadTestsFromTestClass

  • GetTestMethodName