【问题标题】:Is there a way to stage data using Maven and Junit 5?有没有办法使用 Maven 和 Junit 5 暂存数据?
【发布时间】:2018-08-28 20:01:34
【问题描述】:

我们正在使用 Maven 运行 JUnit5 功能测试。大多数测试需要数据通过我们的整个系统(Storm 拓扑),这可能需要大约 1 分钟。我们需要发送一些数据,然后等待 1 分钟,然后再运行测试。

我们需要暂存数据,然后将密钥等传递给测试。

有没有办法运行一个方法/类来暂存数据,然后等待一分钟,然后运行其余的测试?

【问题讨论】:

  • 听起来您正在运行集成测试,此活动非常适合 pre-integration-test 阶段。
  • 关于此的任何其他信息?可能是链接?

标签: java maven maven-surefire-plugin junit5


【解决方案1】:

在 JUnit 5 中对 suites 提供一流的支持之前,一种替代方法是创建一个实现 BeforeAllCallback 的扩展,通过 ServiceLoader 机制全局注册,并利用CloseableResource 和 ExtentionContext.Store 实现类似套件的行为。

请参阅issue #1555 以及从那里链接的有关 Gitter 的讨论以获取更多详细信息。

【讨论】:

    【解决方案2】:

    我认为 JUNIT 还不支持测试套件之前/之后的能力;我看到很多人要求它:例如https://github.com/junit-team/junit5/issues/456.

    在每个测试类的基础上,您可以使用@BeforeClass 来初始化该类中测试的数据。因此,这将让您在每个班级进行一次分期,而不是每次测试一次,如果您的班级每个都有很多测试,这可能是一个相当不错的胜利(假设我理解您在这里的要求!)。

    【讨论】:

    • 是的,我已经编写了 BeforeClass 代码,但我有数百个测试要运行。即使将它们并行化也不够快。我需要 BeforeRun 或 BeforeTests。
    猜你喜欢
    • 1970-01-01
    • 2015-04-22
    • 2010-12-27
    • 2019-04-25
    • 2021-12-31
    • 2012-02-09
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多