【问题标题】:Packing JAVA tests to test my APP in offline environment打包JAVA测试离线测试我的APP
【发布时间】:2016-08-15 08:29:01
【问题描述】:

我有一个想要部署到离线环境的 java 项目(大型项目)。

此环境只能访问 Nexus(工件存储库),但不能访问我的 git 存储库, 所以我用脚本上传了我的应用程序,我想在上面运行测试 - 但我无法使用测试源运行测试,因为我没有它(无法访问 GIT)。 打包测试的最佳方法是什么(在 jar 文件中?UberJar?), 这样做的最佳做法是什么?

测试是 Selenium 测试,需要浏览器。

提前致谢。

【问题讨论】:

  • 何时可以使用脚本上传应用;是什么阻止您上传 .git 文件?并在以后推动改变?这将是我在这里的“最佳实践”。你看 - 这是 git 的优点之一:它可以“离线”正常工作。

标签: java unit-testing testing jar build


【解决方案1】:

你在这里谈论什么样的测试?如果它们是单元测试,那么它们应该由构建过程在您的开发环境或构建服务器上运行。

如果它们是集成测试,那么它们可能需要一些设置,例如测试服务器、数据库、文件等。这通常意味着将集成测试模块本身部署到某个地方并针对您的核心项目运行它。

在您的情况下,这意味着您应该在构建集成测试时做一些额外的工作,以便创建一个包含所有必要设置和应用程序工件的包。

编辑:在前端测试的情况下,我仍然会将测试打包为一个单独的模块,并将被测应用程序和 selenium 套件部署到服务器,例如作为一个简单的.zip 文件。

我会通过 SCP 或其他一些直接文件传输来部署 zip。 Nexus 并不真正适合这种情况,并且测试工件将存放在您的存储库中,占用空间并使人们感到困惑。

另一种解决方案是创建一个 Docker 容器,其中包含运行测试所需的所有内容,然后将该容器部署到您的服务器。

【讨论】:

  • Docker 容器似乎不是一个好主意,因为每次测试发生变化时我们都需要创建一个新镜像。我想我会采用创建 .zip 文件的方法。因此,如果我理解正确,您建议我压缩所有测试(源代码 + mvn pom's),然后从我的工件存储库(Nexus)中获取这个 zip
  • 不,我建议让构建为您创建合适的测试工件。通常不包含源代码,除非可能是解释代码。
  • 像这样使用 Docker 实际上是预期的用途:在 VM 中捆绑软件和配置以实现无缝部署。
猜你喜欢
  • 2012-04-11
  • 2018-04-20
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多