SBT/Scala 和集成测试
SBT/Scala and Integration testing
在研究自动化集成测试的主题时,我在 Maven 世界中发现了一个名为 FailSafe 的不错的插件。它给了我预集成测试、post-集成测试和集成测试等阶段。
通过绑定到这些阶段,我可以拥有其他插件,可以 start/stop 和 运行 docker 图片。
该插件还有一个很好的方法,我可以通过该方法区分单元测试和集成测试(即使两者都是用 JUNIT 编写的)。
那么现在的问题是我怎样才能用 Scala / SBT 组合做同样的事情?
我的要求是
- 在 SpecFlow 中编写集成测试。
- 集成测试的处理方式与单元测试不同。
- 第一个单元测试是 运行。
- 然后 docker 个容器被创建并且 运行
- 那么集成测试就是运行。
- docker 包含已关闭。
- 测试结果保存在文件中。 (就像 surefire/failsafe 插件一样)。
这在 Scala/sbt 组合中可能吗?
我找到了问题的答案。 SBT 提供了进行集成测试的方法以及设置和清理方法来创建/销毁 docker 容器
一个简单的解决方案是 运行 $ sbt "~ it:test"
(确保集成测试在名为 'it' 的包中)进行集成测试,每次源时都会自动 运行代码已更新。此外,$sbt "~ test"
用于自动化单元测试。如果您使用的是 IDE,例如 IntelliJ IDEA,您可以在 IDE 的自定义配置中更轻松地 运行 此项。希望这会有所帮助。我运行工作的时候一直都是这些。
在研究自动化集成测试的主题时,我在 Maven 世界中发现了一个名为 FailSafe 的不错的插件。它给了我预集成测试、post-集成测试和集成测试等阶段。
通过绑定到这些阶段,我可以拥有其他插件,可以 start/stop 和 运行 docker 图片。
该插件还有一个很好的方法,我可以通过该方法区分单元测试和集成测试(即使两者都是用 JUNIT 编写的)。
那么现在的问题是我怎样才能用 Scala / SBT 组合做同样的事情?
我的要求是
- 在 SpecFlow 中编写集成测试。
- 集成测试的处理方式与单元测试不同。
- 第一个单元测试是 运行。
- 然后 docker 个容器被创建并且 运行
- 那么集成测试就是运行。
- docker 包含已关闭。
- 测试结果保存在文件中。 (就像 surefire/failsafe 插件一样)。
这在 Scala/sbt 组合中可能吗?
我找到了问题的答案。 SBT 提供了进行集成测试的方法以及设置和清理方法来创建/销毁 docker 容器
一个简单的解决方案是 运行 $ sbt "~ it:test"
(确保集成测试在名为 'it' 的包中)进行集成测试,每次源时都会自动 运行代码已更新。此外,$sbt "~ test"
用于自动化单元测试。如果您使用的是 IDE,例如 IntelliJ IDEA,您可以在 IDE 的自定义配置中更轻松地 运行 此项。希望这会有所帮助。我运行工作的时候一直都是这些。