簡體   English   中英

啟動測試 selenium/standalone-chrome gitlab-ci

[英]Launch tests selenium/standalone-chrome gitlab-ci

聖誕快樂,親愛的聰明的參與者我有這份工作

test-dev:
  stage: test
  script:
    - mkdir -p tests/js/screens/diffs
    - docker run --rm -d --name=browser_$CI_JOB_ID -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome
    - npx mocha tests/js/screenshots-* --timeout 50000
    - npx playwright test tests/js/pw_*
    - php artisan test
    - docker stop browser_$CI_JOB_ID
  artifacts:
    when: always
    name: $CI_COMMIT_SHA
    untracked: true
    paths:
      - tests/js/screens
      - tests/js/report
  cache:
    when: always
    paths:
      - storage/framework
      - vendor/ #composer packages
      - node_modules
      - public
    key:
      files:
        - vendor/ #composer packages
        - composer.lock
  tags:
    - test_new_runner

相同的工作,但正在進行重建

    test-dev:
    #  allow_failure: true
      stage: test
      image: selenium/standalone-chrome
      script:
        - mkdir -p tests/js/screens/diffs
    #    - docker run --rm -d --name=browser_$CI_JOB_ID -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome
        - npx mocha tests/js/screenshots-* --timeout 50000
        - npx playwright test tests/js/pw_*
        - php artisan test
    #    - docker stop browser_$CI_JOB_ID
      artifacts:
        when: always
        name: $CI_COMMIT_SHA
        untracked: true
        paths:
          - tests/js/screens
          - tests/js/report
      cache:
        when: always
        paths:
          - storage/framework
          - vendor/ #composer packages
          - node_modules
          - public
        key:
          files:
            - vendor/ #composer packages
            - composer.lock
      tags:
        - test_new_runner

我想刪除 docker 啟動,因為它失敗了,但我不知道如何將它與圖像一起使用但是如果我使用圖像我里面沒有 npx 我不知道如何做到這一點,可以有人幫忙嗎?

您可以使用基本映像docker:20.10.16 npx安裝 npx 然后使用service運行docker dind然后在您的 docker 中運行 selenium 瀏覽器。

像:

test-dev:
  stage: test
  image: docker:20.10.16  
  services:
    - docker:dind  
  script:
    - apk add --update npm
    - mkdir -p tests/js/screens/diffs
    - docker run --rm -d --name=browser_$CI_JOB_ID -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome
    - npx mocha tests/js/screenshots-* --timeout 50000
    - npx playwright test tests/js/pw_*
    - php artisan test
    - docker stop browser_$CI_JOB_ID 
  artifacts:
    when: always
    name: $CI_COMMIT_SHA
    untracked: true
    paths:
      - tests/js/screens
      - tests/js/report
  cache:
    when: always
    paths:
      - storage/framework
      - vendor/ #composer packages
      - node_modules
      - public
    key:
      files:
        - vendor/ #composer packages
        - composer.lock
  tags:  
    - test_new_runner

希望這有效。

我做了@Prabhu 寫的但它注意到最后一步

test-dev:
  stage: test
  image: docker:20.10.16  
  services:
    - docker:dind  
  script:
    - apk add --update npm
    - mkdir -p tests/js/screens/diffs
    - docker run --rm -d --name=browser_$CI_JOB_ID -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome
    - npx mocha tests/js/screenshots-* --timeout 50000
    - npx playwright test tests/js/pw_*
    - php artisan test
    - docker stop browser_$CI_JOB_ID 
  artifacts:
    when: always
    name: $CI_COMMIT_SHA
    untracked: true
    paths:
      - tests/js/screens
      - tests/js/report
  cache:
    when: always
    paths:
      - storage/framework
      - vendor/ #composer packages
      - node_modules
      - public
    key:
      files:
        - vendor/ #composer packages
        - composer.lock
  tags:  
    - test_new_runner

完成此步驟后,您應該像那樣在容器中共享 docker 套接字

[[runners]]
  name = "23.01.01"
  url = ""
  id = 19
  token = ""
  token_obtained_at = 2023-01-02T05:52:07Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    MaxUploadedArchiveSize = 0
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "ruby:2.7"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
    shm_size = 0

研究

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM