【问题标题】:Implementing Junit @BeforeAll like behaviour in scalatest在 scalatest 中实现类似 Junit @BeforeAll 的行为
【发布时间】:2020-06-04 18:44:35
【问题描述】:

我正在使用 scalatest 在我的应用程序中编写单元测试。我想在启动我的测试套件之前启动嵌入式弹性服务器,并在所有测试套件完成后将其拆除。 Scalatest 提供了 BeforeAndAfterAll 和 BeforeAndAfter 特征,但它们仅适用于单个套件中的测试。如何使用 scalatest 实现此行为。

【问题讨论】:

标签: scala junit integration-testing scalatest elastic4s


【解决方案1】:

一般来说,我不确定是否可以在整个测试套件执行之前运行一些代码,也许是在sbt 配置级别。 但是对于你描述的情况

我要启动嵌入式弹性服务器

您可以查看TestContainers 项目,它是Scala integration - 本质上是这个库的设计目的 - 在开始之前为测试设置外部环境。它具有开箱即用的弹性搜索支持。

希望这会有所帮助!

【讨论】:

  • 谢谢@Ivan Kurchenko。我看着这个。我这里有问题。 Docker 容器正在为我编写的每个规范启动。例如,我有两个规格 TestSpec1 和 TestSpec2 两个单独的类。我想在所有测试运行之前只启动一个容器实例。关于实现这一点的任何想法。
  • @SumitNekar 根据文档,您需要使用 ForAllTestContainer 作为规范的基础,因此将为您的所有套件创建环境。
  • 这个特性为每个规范文件启动一个实例。即一个实例用于一个规范文件中的所有测试。我的要求是在多个规范文件之前启动一个实例。
猜你喜欢
  • 1970-01-01
  • 2016-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多