[英]How to make Dockerfile for e2e tests written with Puppeteer
我使用一個名為Puppetry的神奇工具來創建 e2e 測試。 測試使用 npm 命令 - npm test
運行。 十分簡單。
我使用 Dockerfile 在部署管道中運行這些測試。 一切正常。 我想知道的是這兩種方法中哪一種更好(以及為什么):
# Dockerfile
# other docker instructions
RUN npm run test <== 1. running tests when the image builds
CMD npm test <== 2. running tests after the image builds
目前,我使用第二種方法。
更多信息:
我的部署管道如下所示:
BuildDev > DeployDev >TestDev
BuildDev 使用構建 Dockerfile。 TestDev 使用測試 Dockerfile。
您無法從 Dockerfile RUN
命令運行端到端測試。 它在沒有持久存儲且容器無法訪問其他容器的環境中運行。 (從技術上講,沒有外部卷掛載,它在默認橋接網絡上運行。)這意味着,如果被測系統在 Docker 中運行,則測試構建無法到達它,並且無論如何結果都可以t 記錄在構建圖像以外的任何地方。
這也是從 Docker 外部運行的一個很好的候選。 通常端到端測試只會調用系統的外部可見端點並驗證以這種方式可觀察到的行為。 這意味着您不需要調用堆棧中的隨機容器,只需要您發布的一個 nginx 代理容器; 沒有特別需要在 Docker 內部網絡上。 您還希望獲得已發布的結果,並且 Docker 的文件系統隔離可能會妨礙您,並且可能希望通過細微的調整重新運行測試(而不是重新docker build
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.