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
、そこから逃げます。