【发布时间】:2018-09-13 06:43:45
【问题描述】:
我正在将一个基于 JUnit 4 的内部工具升级到 JUnit 5。因此我必须为测试执行编写一个扩展。扩展的任务应该是确保外部应用程序的正确状态(如果它没有运行则启动它等)。要执行此任务,需要几个参数(来自命令行)。
我可以将这些参数存储在扩展上下文中吗?如果是这样,我如何在实际测试开始之前访问它?
【问题讨论】:
标签: junit5 junit5-extension-model
我正在将一个基于 JUnit 4 的内部工具升级到 JUnit 5。因此我必须为测试执行编写一个扩展。扩展的任务应该是确保外部应用程序的正确状态(如果它没有运行则启动它等)。要执行此任务,需要几个参数(来自命令行)。
我可以将这些参数存储在扩展上下文中吗?如果是这样,我如何在实际测试开始之前访问它?
【问题讨论】:
标签: junit5 junit5-extension-model
我可以将这些参数存储在扩展上下文中吗?
您可以,但更好的选择是将它们作为“配置参数”访问——例如,通过org.junit.jupiter.api.extension.ExtensionContext.getConfigurationParameter(String)。
如果是这样,我如何在实际测试开始之前访问它?
您可以通过BeforeAllCallback 扩展中的上述ExtensionContext.getConfigurationParameter(String) 方法访问它们。
如果您希望在 all 测试类之前执行自定义扩展,而无需用户显式注册扩展,则可以自动注册扩展。详情请见User Guide。
【讨论】: