在测试中部署要测试的微服务

时间:2017-08-30 12:34:56

标签: integration-testing rest-assured citrus-framework karate

也许这在测试框架中一般不可能,但

我希望能够在测试本身内部署我正在测试的微服务。我看过柑橘,RestAssured和空手道,听了无数的谈话,阅读了无数的博客,但我从来没有看到如何做到第一阶段。似乎总是假设微服务已预先部署。

3 个答案:

答案 0 :(得分:2)

老实说,这取决于您的微服务的部署方式以及您所针对的基础架构。我更喜欢将部署集成到Maven构建中,因为Maven提供了集成前和集成后测试阶段。

如果您可以使用Kubernetes或Docker,我建议将部署与fabric8 maven插件(fabric8-maven-plugindocker-maven-plugin)集成。这将自动创建/启动/停止Maven构建中的Docker容器部署。

如果您可以使用Spring启动,官方maven插件可以以相同的方式执行此操作。

另一种可能性是使用构建管道。例如,使用Jenkins进行连续构建将首先部署正在测试的系统,然后在管道中执行测试。

我个人更喜欢始终将部署和测试任务分开。如果您真的想在测试Citrus中进行部署,因为框架能够在测试中启动/停止Docker容器和/或Kubernetes pod。 Citrus还可以在测试套件阶段之前/之后集成这些部署任务。

答案 1 :(得分:1)

我找到了一种使用docker-compose做到这一点的方法。

https://github.com/djangofan/karate-test-prime-example

基本上,制作一个docker-compose.yml来运行您的服务容器,然后在调用wait-for-it.sh之后也运行e2e测试。

答案 2 :(得分:0)

2分:

karate-demo是一个由JUnit测试运行器部署的Spring Boot示例。这是code that starts the server

karate-mock-servlet更进一步,您可以在项目中运行HTTP集成测试而无需启动应用服务器。节省时间和代码覆盖率报告更容易。

如果你有任何要求,我会很高兴听到他们。我们想要实现的一件事是内置的服务器端模拟框架 - 想想嵌入式线程模块:但是很容易使用Karate的DSL。但还没有具体的时间表。