0

https://github.com/cypress-io/code-coverageがインストールされたCypress v7.5.0 を使用しています。構成とセットアップについて特別なことは何もありません。説明のとおりです。

Docker コンテナ内で Vue3 テスト アプリをローカルで実行しています。ホストで Cypress を実行すると、カバレッジ、テスト、問題なく、すべて正常に動作します。ただし、別の docker コンテナー内からサイプレスを実行すると、コード カバレッジが原因でテストが失敗します。スクリーンショットを参照してください。

テスト実行後のエラー

スクリーンショットだけでなく、コード カバレッジからエラーが発生することもわかっていますcypress run --env coverage=false

これが私のdocker-composeセットアップです:

version: '3.1'

services:
  phoenix:
      build:
          context: .
      container_name: phoenix
      ports:
          - "4000:4000"
          - "4001:4001"
      networks:
          - mapp
      volumes:
          - ../:/app
      command: bash -c "
          cd /app && make run_phoenix_inside_docker
          "
  cypress:
      container_name: cypress
      # the Docker image to use from https://github.com/cypress-io/cypress-docker-images
      image: "cypress/included:7.5.0"
      depends_on:
          - phoenix
      entrypoint: ["/bin/bash", "./cypress_entrypoint.sh"]
      environment:
          # pass base url to test pointing at the web application
          - CYPRESS_baseUrl=http://phoenix:4000
      # share the current folder as volume to avoid copying
      working_dir: /
      volumes:
          - ../E2E:/e2e
          - ./cypress_entrypoint.sh:/cypress_entrypoint.sh
      networks:
          - mapp
networks:
    mapp:

フェニックスはvue3アプリであり、フェニックスを自分に追加するとホストからうまく機能します/etc/hostsが、サイプレスコンテナ内から実行するとうまくいきません。Failed to fetchそのエラーの意味を知っている人はいますか?ところで、ファイルは書き込まれるので、カバレッジ フォルダーへの書き込みアクセスがあります。

ヒノキのエントリポイントはただ

#!/bin/bash
echo "Init cypress..."
tail -F /dev/null

コンテナを起動した直後にテストを実行しないようにします。私はコンテナにぶつかりcd e2e && cypress run、そこから逃げます。

4

2 に答える 2