钩参考

备注

这里按执行顺序列出挂钩。

预登记挂钩

pluginsLoaded(self, event)
参数:

event -- nose2.events.PluginsLoadedEvent

这个 pluginsLoaded 钩子在读取所有配置文件并加载所有插件类之后调用。自动注册的插件 nose2.events.Plugin.register() 在里面 __init__ 或有 always-on = True 在它们的配置文件部分中设置)将已经用它们实现的钩子注册。等待命令行激活的插件尚未注册。

插件可以使用这个钩子来检查或修改加载的插件集,使用 nose2.events.PluginInterface.addMethod() 或者采取其他操作来设置或配置自己或测试运行。

自从 pluginsLoaded 是一个预先注册的钩子,它被要求 所有插件 实现方法的方法,无论它们是否已注册。不自动注册自己的插件应该将它们在这个钩子中的行为限制在配置上,因为它们可能在测试运行期间实际上不处于活动状态。

handleArgs(self, event)
参数:

event -- nose2.events.CommandLineArgsEvent

这个 handleArgs 在解析完命令行中的所有参数之后调用hook。插件可以使用这个钩子以非标准方式处理命令行参数。他们不应该用它来修改其他插件看到的参数,因为插件在钩子中的执行顺序是不确定的。

自从 handleArgs 是一个预先注册的钩子,它被要求 所有插件 实现方法的方法,无论它们是否已注册。不自动注册自己的插件应该将它们在这个钩子中的行为限制在配置上,因为它们可能在测试运行期间实际上不处于活动状态。

标准挂钩

这些钩子只为注册的插件调用。

createTests(self, event)
参数:

event -- A nose2.events.CreateTestsEvent 实例

插件可以通过返回测试套件并设置 event.handled 成真。

loadTestsFromNames(self, event)
参数:

event -- A nose2.events.LoadFromNamesEvent 实例

插件可以返回测试套件或测试套件列表并设置 event.handledTrue 防止其他插件从给定名称加载测试,或将测试附加到 event.extraTests . 插件还可以从 event.names 以防止其他插件对这些名称进行操作。

loadTestsFromName(self, event)
参数:

event -- A nose2.events.LoadFromNameEvent 实例

插件可以返回测试套件并设置 event.handledTrue 防止其他插件从给定名称加载测试,或将测试附加到 event.extraTests .

handleFile(self, event)
参数:

event -- A nose2.events.HandleFileEvent 实例

插件可以使用这个钩子从不是Python模块的文件中加载测试。插件可以将测试附加到 event.extraTest 或者,如果要阻止其他插件处理该文件,请设置 event.handled 返回测试用例或测试套件。

matchPath(self, event)
参数:

event -- A nose2.events.MatchPathEvent 实例

插件可以使用这个钩子来防止测试加载程序加载Python模块,或者强制测试加载程序加载它们。集合 event.handledTrue 然后返回 False 使加载程序跳过模块。集合 event.handledTrue 然后返回 True 使加载程序加载模块。

loadTestsFromModule(self, event)
参数:

event -- A nose2.events.LoadFromModuleEvent 实例

插件可以使用这个钩子从测试模块加载测试。要防止从模块加载其他插件,请设置 event.handled 并返回一个测试套件。插件还可以将测试附加到 event.extraTests --通常这就是您想要做的,因为这将允许其他插件也从模块加载它们的测试。

也见 this warning 关于模块中未定义的测试用例。

loadTestsFromTestCase(self, event)
参数:

event -- A nose2.events.LoadFromTestCaseEvent 实例

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

getTestCaseNames(self, event)
参数:

event -- A nose2.events.GetTestCaseNamesEvent 实例

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

runnerCreated(self, event)
参数:

event -- A nose2.events.RunnerCreatedEvent 实例

插件可以使用这个钩子来包装、捕获或替换测试运行程序。要更换测试运行程序,请设置 event.runner .

resultCreated(self, event)
参数:

event -- A nose2.events.ResultCreatedEvent 实例

插件可以使用这个钩子来包装、捕获或替换测试结果。要替换测试结果,请设置 event.result .

startTestRun(self, event)
参数:

event -- A nose2.events.StartTestRunEvent 实例

插件可以使用这个钩子在测试运行开始之前采取行动,并替换或包装测试执行器。要替换执行者,请设置 event.executeTests . 这必须是一个接受两个参数的可调用函数:顶级测试和测试结果。

为了防止测试执行器运行,设置 event.handledTrue .

startLayerSetup(self, event)
参数:

event -- A nose2.events.StartLayerSetupEvent 实例(仅在具有层的套件中可用)。

插件可以使用这个钩子在 setUp 在一层中。

stopLayerSetup(self, event)
参数:

event -- A nose2.events.StopLayerSetupEvent 实例(仅在具有层的套件中可用)。

插件可以使用这个钩子在 setUp 一层完成。

startLayerSetupTest(self, event)
参数:

event -- A nose2.events.StartLayerSetupTestEvent 实例(仅在具有层的套件中可用)。

插件可以使用这个钩子在 testSetUp 在一层中。

stopLayerSetupTest(self, event)
参数:

event -- A nose2.events.StopLayerSetupTestEvent 实例(仅在具有层的套件中可用)。

插件可以使用这个钩子在 testSetUp 一层完成。

startTest(self, event)
参数:

event -- A nose2.events.StartTestEvent 实例

插件可以使用这个钩子在测试运行前立即采取行动。

reportStartTest(self, event)
参数:

event -- A nose2.events.ReportTestEvent 实例

插件可以使用这个钩子在测试开始时为用户生成输出。如果要打印到控制台,请写入 event.stream . 记住尊重 self.session.verbosity 打印到控制台时。要防止其他插件向用户报告,请设置 event.handledTrue .

describeTest(self, event)
参数:

event -- A nose2.events.DescribeTestEvent 实例

插件可以使用这个钩子来更改测试描述。若要返回测试的非标准描述,请设置 event.description . 请注意,其他插件可能也设置了这个!

setTestOutcome(self, event)
参数:

event -- A nose2.events.TestOutcomeEvent 实例

插件可以使用这个钩子来改变测试结果。插件可以 event.outcome 要更改事件的结果,请调整、更改或删除 event.exc_info ,设置或清除 event.expected 等等。

testOutcome(self, event)
参数:

event -- A nose2.events.TestOutcomeEvent 实例

插件可以使用这个钩子根据测试结果采取行动。插件 不能 改变这个钩子中的测试结果:这就是 setTestOutcome() 是的。在这里,插件只能对结果事件做出反应,而不能改变它。

reportSuccess(self, event)
参数:

event -- A nose2.events.LoadFromNamesEvent 实例

插件可以使用这个钩子向用户报告测试成功。如果要打印到控制台,请写入 event.stream . 记住尊重 self.session.verbosity 打印到控制台时。要防止其他插件向用户报告,请设置 event.handledTrue .

reportError(self, event)
参数:

event -- A nose2.events.ReportTestEvent 实例

插件可以使用这个钩子向用户报告测试错误。如果要打印到控制台,请写入 event.stream . 记住尊重 self.session.verbosity 打印到控制台时。要防止其他插件向用户报告,请设置 event.handledTrue .

reportFailure(self, event)
参数:

event -- A nose2.events.ReportTestEvent 实例

插件可以使用这个钩子向用户报告测试失败。如果要打印到控制台,请写入 event.stream . 记住尊重 self.session.verbosity 打印到控制台时。要防止其他插件向用户报告,请设置 event.handledTrue .

reportSkip(self, event)
参数:

event -- A nose2.events.ReportTestEvent 实例

插件可以使用这个钩子向用户报告跳过的测试。如果要打印到控制台,请写入 event.stream . 记住尊重 self.session.verbosity 打印到控制台时。要防止其他插件向用户报告,请设置 event.handledTrue .

reportExpectedFailure(self, event)
参数:

event -- A nose2.events.ReportTestEvent 实例

插件可以使用这个钩子向用户报告预期的失败。如果要打印到控制台,请写入 event.stream . 记住尊重 self.session.verbosity 打印到控制台时。要防止其他插件向用户报告,请设置 event.handledTrue .

reportUnexpectedSuccess(self, event)
参数:

event -- A nose2.events.ReportTestEvent 实例

插件可以使用这个钩子向用户报告意外的成功。如果要打印到控制台,请写入 event.stream . 记住尊重 self.session.verbosity 打印到控制台时。要防止其他插件向用户报告,请设置 event.handledTrue .

reportOtherOutcome(self, event)
参数:

event -- A nose2.events.ReportTestEvent 实例

插件可以使用这个钩子向用户报告定制的测试结果。如果要打印到控制台,请写入 event.stream . 记住尊重 self.session.verbosity 打印到控制台时。要防止其他插件向用户报告,请设置 event.handledTrue .

nose2本身永远不会产生此事件。只有当插件创建具有无法识别的结果的测试结果时才会触发。

stopTest(self, event)
参数:

event -- A nose2.events.StopTestEvent 实例

插件可以使用这个钩子在测试完成运行并报告结果后采取行动。

startLayerTeardownTest(self, event)
参数:

event -- A nose2.events.StartLayerTeardownTestEvent 实例(仅在具有层的套件中可用)。

插件可以使用这个钩子在 testTearDown() 在一层中。

stopLayerTeardownTest(self, event)
参数:

event -- A nose2.events.StopLayerTeardownTestEvent 实例(仅在具有层的套件中可用)。

插件可以使用这个钩子在 testTearDown() 一层完成。

startLayerTeardown(self, event)
参数:

event -- A nose2.events.StartLayerTeardownEvent 实例(仅在具有层的套件中可用)。

插件可以使用这个钩子在 tearDown() 在一层中。

stopLayerTeardown(self, event)
参数:

event -- A nose2.events.StopLayerTeardownEvent 实例(仅在具有层的套件中可用)。

插件可以使用这个钩子在 tearDown() 一层完成。

stopTestRun(self, event)
参数:

event -- A nose2.events.StopTestRunEvent 实例

插件可以使用这个钩子在测试运行结束时采取行动。

afterTestRun(self, event)
参数:

event -- A nose2.events.StopTestRunEvent 实例

备注

0.2版新增功能

插件可以使用这个钩子来执行操作 之后 测试运行结束,如打印摘要报告,如内置结果报告器插件 nose2.plugins.result.ResultReporter .

resultStop(self, event)
参数:

event -- A nose2.events.ResultStopEvent 实例

插件可以使用这个钩子 防止 其他插件停止测试运行。这个钩子在有东西叫的时候会被触发 nose2.result.PluggableTestResult.stop() . 如果要阻止此操作停止测试运行,请设置 event.shouldStopFalse .

beforeErrorList(self, event)
参数:

event -- A nose2.events.ReportSummaryEvent 实例

插件可以使用这个钩子在输出错误和失败列表之前输出或修改摘要信息。要修改将要报告的结果类别,插件可以修改 event.reportCategories 字典。插件可以通过读取或设置来设置、包装或捕获输出流 event.stream . 如果要打印到控制台,请写入 event.stream . 记住尊重 self.session.verbosity 打印到控制台时。

outcomeDetail(self, event)
参数:

event -- A nose2.events.OutcomeDetailEvent 实例

插件可以使用这个钩子向错误列表输出添加额外的元素。附加额外的细节线到 event.extraDetail ;这些将在作为详细错误/失败消息的一部分输出之前,在回溯之后与新行连接在一起。

beforeSummaryReport(self, event)
参数:

event -- A nose2.events.ReportSummaryEvent 实例

插件可以使用这个钩子在输出摘要行之前输出或修改摘要信息。要修改摘要中报告的结果类别,插件可以修改 event.reportCategories 字典。插件可以通过读取或设置来设置、包装或捕获输出流 event.stream . 如果要打印到控制台,请写入 event.stream . 记住尊重 self.session.verbosity 打印到控制台时。

wasSuccessful(self, event)
参数:

event -- A nose2.events.ResultSuccessEvent 实例

插件可以使用这个钩子将测试运行标记为成功或不成功。如果非插件将运行标记为成功,则默认状态为失败。要将运行标记为成功,请设置 event.successTrue . 其他插件也可以设置这个属性!

afterSummaryReport(self, event)
参数:

event -- A nose2.events.ReportSummaryEvent 实例

插件可以使用这个钩子在输出摘要行之后向用户输出报告。如果要打印到控制台,请写入 event.stream . 记住尊重 self.session.verbosity 打印到控制台时。

用户交互挂钩

当插件想要与用户交互时,调用这些钩子。

beforeInteraction(event)
参数:

event -- A nose2.events.UserInteractionEvent

插件应该通过避开用户交互的方式来响应这个钩子,如果需要的话,或者设置 event.handled 归还 False 如果他们需要,但不能。

afterInteraction(event)
参数:

event -- A nose2.events.UserInteractionEvent

插件可以对这个钩子作出响应,返回到用户介入并开始四处搜索之前所做的一切。