钩参考
备注
这里按执行顺序列出挂钩。
预登记挂钩
- 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.handled
到True
防止其他插件从给定名称加载测试,或将测试附加到event.extraTests
. 插件还可以从event.names
以防止其他插件对这些名称进行操作。
- loadTestsFromName(self, event)
- 参数:
event -- A
nose2.events.LoadFromNameEvent
实例
插件可以返回测试套件并设置
event.handled
到True
防止其他插件从给定名称加载测试,或将测试附加到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.handled
到True
然后返回False
使加载程序跳过模块。集合event.handled
到True
然后返回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.handled
到True
并返回一个测试套件。插件还可以将测试附加到event.extraTests
--通常这就是您想要做的,因为这将允许其他插件从测试用例中加载它们的测试。
- getTestCaseNames(self, event)
- 参数:
event -- A
nose2.events.GetTestCaseNamesEvent
实例
插件可以使用这个钩子来限制或扩展将从
unittest.TestCase
通过标准的nose2测试加载程序插件(以及其他尊重hook结果的插件)。要强制指定名称列表,请设置event.handled
到True
并返回一个列表:这个准确的列表将是从测试用例加载的唯一测试用例名称。插件还可以通过将测试名称附加到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.handled
到True
.
- 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.handled
到True
.
- 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.handled
到True
.
- reportError(self, event)
- 参数:
event -- A
nose2.events.ReportTestEvent
实例
插件可以使用这个钩子向用户报告测试错误。如果要打印到控制台,请写入
event.stream
. 记住尊重self.session.verbosity
打印到控制台时。要防止其他插件向用户报告,请设置event.handled
到True
.
- reportFailure(self, event)
- 参数:
event -- A
nose2.events.ReportTestEvent
实例
插件可以使用这个钩子向用户报告测试失败。如果要打印到控制台,请写入
event.stream
. 记住尊重self.session.verbosity
打印到控制台时。要防止其他插件向用户报告,请设置event.handled
到True
.
- reportSkip(self, event)
- 参数:
event -- A
nose2.events.ReportTestEvent
实例
插件可以使用这个钩子向用户报告跳过的测试。如果要打印到控制台,请写入
event.stream
. 记住尊重self.session.verbosity
打印到控制台时。要防止其他插件向用户报告,请设置event.handled
到True
.
- reportExpectedFailure(self, event)
- 参数:
event -- A
nose2.events.ReportTestEvent
实例
插件可以使用这个钩子向用户报告预期的失败。如果要打印到控制台,请写入
event.stream
. 记住尊重self.session.verbosity
打印到控制台时。要防止其他插件向用户报告,请设置event.handled
到True
.
- reportUnexpectedSuccess(self, event)
- 参数:
event -- A
nose2.events.ReportTestEvent
实例
插件可以使用这个钩子向用户报告意外的成功。如果要打印到控制台,请写入
event.stream
. 记住尊重self.session.verbosity
打印到控制台时。要防止其他插件向用户报告,请设置event.handled
到True
.
- reportOtherOutcome(self, event)
- 参数:
event -- A
nose2.events.ReportTestEvent
实例
插件可以使用这个钩子向用户报告定制的测试结果。如果要打印到控制台,请写入
event.stream
. 记住尊重self.session.verbosity
打印到控制台时。要防止其他插件向用户报告,请设置event.handled
到True
.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.shouldStop
到False
.
- 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.success
到True
. 其他插件也可以设置这个属性!
- 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
插件可以对这个钩子作出响应,返回到用户介入并开始四处搜索之前所做的一切。