当前位置: 首页 > 知识库问答 >
问题:

如何在kubernetes/service Mesh中运行jUnit系统集成测试?

海鸣
2023-03-14

我们有一个服务网格/kubernetes通过终端工作,显示所有不同的pod及其不同的名称空间。在每个pod中,您可以控制台并查看app.jar.

最近,boss/client询问我们如何从service mesh/kubernetes命令行为任何特定的JAR运行各种系统集成测试。谷歌说用mvn全新安装’,‘javac’或者‘Java-jar JUnit-platform-console-standalone-1 . 7 . 2 . jar-class-path target-select-class’。这些都因为各种原因而失败(mvn不存在,javac不存在,jar说该端口正在使用中。当然,端口正在使用中,前面提到的同一个jar正在使用它)。

当我在Gitlab(或Intellij)中查看pod时,我看到了它拥有的所有测试。但是如何从pod控制台运行这些SYSTEM INTEGRATION测试呢?理想情况下是运行所有测试的命令,这会让事情变得容易得多。

编辑:在评论中的热笑。我向老板澄清,她说我们希望从服务网格运行系统集成测试,而不是单元测试。这些豆荚不是孤立的,其中一些相互依赖。

共有1个答案

佴淮晨
2023-03-14

一般来说,用户Jornsharpe的评论可以回答以下问题:

作为一个请求,这毫无意义——您在源代码上运行单元测试,如果通过,那么构建并部署容器。它们甚至不应该包含在已部署的jar中。

如果需要测试应用程序,请在部署之前进行测试。您应该有一个单独的环境,您可以在其中测试您的应用程序,并且仅在应用程序正常工作时才使用 Kubernetes。当然,您可以使用一些 CI 类型的解决方案。查看此页面 - 使用 GitLab CI 为 Kubernetes 托管的应用程序运行 JUnit 测试。

如果你正在寻找一个用Kubernetes进行集成测试的解决方案,你可以阅读一些文档。这完全取决于你具体想测试什么。我提出了几种可能性:

  • 通过远程呈现克服库伯内特斯应用程序集成测试挑战
  • 我们如何在库伯内特斯进行集成测试,以及为什么我们停止使用Helm测试
  • 在CI管道中测试库伯内特斯的部署
 类似资料:
  • 我有一个用V3.4.0(使用Gradle)生成的Jhipster。 我正在尝试从STS运行和调试单元测试。 来自文档: 更新 我已经根据https://jhipster.github.io/configuring-ide-eclipse-gradle/:

  • 如何在下面的JUnit类中运行integrationFlow?目前出现了例外情况 因为整合流没有启动。 JUnit类: }

  • 我的团队开发了一个kubernetes集群。我们已经使用< code>kubectl命令行对其进行了手动测试。这些测试用例涉及到,例如: < li >豆荚 < li >服务、负载平衡器等。 < li >部署 < li >水平窗格缩放 < li >回滚部署 < li >入口控制器 Helm-kubernetes的包装经理 < li >持久性卷和持久性卷声明。 < li>DNS 上述手动测试用例的链接

  • 现在我们有一个项目,包含两个工作。1) 是带有单元测试的标准构建。2) 是集成测试。它们是这样工作的: 构建整个项目,运行单元测试,启动集成测试工作 问题是步骤2)现在需要一个多小时才能运行,我想将集成测试并行化,以便它们花费更少的时间。但我不确定我该怎么做。我的第一个想法是,我可以有两个这样的步骤: 构建整个项目,运行单元测试,启动集成测试工作 构建整个项目,将其部署到integration s

  • 尝试在maven中重新访问Junit 5平台(5.3.2)下运行Junit 5/4集成测试。从如何使用maven failsafe插件并行运行JUnit 4和JUnit 5测试 在surefire插件2.22.1下运行单元测试可以并行和混合测试JUnit 5和JUnit 4,并在详细信息中查看工作线程。 在故障安全2.22.1中尝试了同样的方法,但是需要日志时间,并且似乎没有并行执行。而且只有[m

  • 我需要为一个设计糟糕的旧应用程序编写JUnit测试,该应用程序正在向标准输出写入大量错误消息。当方法正确运行时,它将返回一个XML响应: 但当它得到格式错误的XML或不理解请求时,它会返回,并将一些内容写入标准输出。 在JUnit中是否有任何方法断言控制台输出?要捕获以下情况: