【问题标题】:When i run the build in Jenkins i got this Error : Cannot find firefox binary in PATH. Make sure firefox is installed当我在 Jenkins 中运行构建时,我得到了这个错误:在 PATH 中找不到 firefox 二进制文件。确保已安装 Firefox
【发布时间】:2021-11-04 03:17:12
【问题描述】:

我在 Jenkins 中创建了一个作业 Maven 项目,目的是编译和执行我所有的自动测试,但是当我构建作业时,我得到了这个错误:

我在所有场景中都收到相同的消息错误

我应该创建一个管道来代替项目 maven 吗?

我使用链接 ssh GitLab 恢复我的项目,并且我在代理后面工作

感谢(y)

【问题讨论】:

  • 您正在运行测试的 Jenkins/Jenkins 节点 Linux 机器可能没有 Firefox - 安装它。或者您可以使用 docker 将其与 Jenkins 集成并使用准备好的图像 github.com/elgalu/docker-selenium/blob/master/README.md
  • 如何在节点 linux 机器上安装/添加 firefox?谢谢你的回答
  • 很抱歉它超出了 SO 范围 - 尝试找到一些符合您要求的教程

标签: java selenium jenkins automated-tests cucumber


【解决方案1】:

这是一个docker-compose 文件,它将在 chrome 上打开 7 个 FF 实例和 1 个实例。我将它与 azure 管道一起使用,但您可以将它与 jenkins 集成。您将不得不添加一个运行 docker-compose 的 jenkins 任务

要在命令行上尝试,只需安装 docker desktop(我在 mac 上使用它)并在命令下运行

docker-compose -f /path/of/file up

version: "3"
services:
  selenium-hub:
    image: selenium/hub:3.141.59-20210607
    container_name: selenium-hub
    ports:
      - "65299:4444"

  chrome:
    image: selenium/node-chrome:3.141.59-20210607
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444


  firefox:
    image: selenium/node-firefox:3.141.59-20210607
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
    deploy:
      mode: replicated
      replicas: 7

对于将 docker-compose 与 azure pipeline 一起使用,我正在使用以下内容。 确保你有 dockerRegistryEndpoint 设置(在下面的例子中:Dockerhub)。我用它来运行我的黄瓜测试并将第三方黄瓜报告 (PublishCucumberReport@1) 集成到管道中

trigger:
- master
resources:
- repo: self
variables:
  tag: '$(Build.BuildId)'
stages:
- stage: Build
  displayName: Build and Push image
  jobs:
   - job: Build
     displayName: Build and Push
     pool:
        vmImage: 'ubuntu-latest'
     steps:
     - task: DockerCompose@0
       displayName: open browser instances
       inputs:
         containerregistrytype: 'Container Registry'
         dockerRegistryEndpoint: Dockerhub
         dockerComposeFile: '**/docker-compose.yml'
         action: 'Run a Docker Compose command'
         dockerComposeCommand: 'up -d'
         detached: true

     - task: Maven@3
       inputs:
         mavenPomFile: 'pom.xml'
         mavenOptions: '-Xmx3072m'
         jdkArchitectureOption: 'x64'
         publishJUnitResults: true
         testResultsFiles: '**/target/cucumber.html'
         goals: 'clean verify -P acceptanceTests -e -X'
         
     - task: PublishPipelineArtifact@1
       displayName: Publish cucumber report
       inputs:
         pathToPublish: $(System.DefaultWorkingDirectory)/s/target/cucumber-report/
         artifactName: 'cucumber.html'

     - task: PublishCucumberReport@1
       inputs:
         jsonDir: ./target/cucumber-report/
         outputPath: ./target/

有关文档,请参阅 - https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/docker-compose?view=azure-devops

【讨论】:

  • 你能告诉我如何在 Jenkiçns 和 azure 管道中集成 docker 吗?如果你不能这样做,请与我分享一个链接,详细解释,谢谢你回答
  • 我在上面为 azure 管道进行了编辑。如果有帮助,请点赞/接受。
猜你喜欢
  • 2014-01-23
  • 2014-01-03
  • 2013-01-21
  • 1970-01-01
  • 2017-02-13
  • 2015-04-16
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
相关资源
最近更新 更多