python – 如何编写一个分隔不同类型测试的nose2插件?

我正在编写一个插件来处理我的单元测试,功能测试和集成测试不同.

我的tests文件夹将具有以下结构:

/tests
— /unit
— /functional
— /integration

每个单元测试将驻留在单元目录中,每个功能测试将驻留在功能目录中,依此类推.

我熟悉Layers插件,但我宁愿按照惯例进行测试.
在测试运行之前,我应该使用哪个钩子来注入适当的层?
它应该是loadTestsFromModule钩子吗?你能告诉我一个例子吗?

我还想将每种测试的摘要报告分开.
我应该使用哪个钩子?

最佳答案 您不需要编写插件,
the built-in attr module就是为此目的而设计的.但是,它不依赖于您的文件层次结构.相反,您将单个测试标记为单元,功能或集成.这看起来像:

from nose.plugins import attrib

@attrib.attr("functional")
class FunctionalTestCase(unittest.TestCase):
    pass

要仅运行功能测试,您将执行以下操作:

nosetests -a functional

如果我正在创建这个测试布局,我可能会有3个unittest.TestCase子类,已标记为“unit”,“functional”和“integration”.新测试可以轻松地继承适当的测试类型.

点赞