作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我已经创建了一个运行我的 Angular 项目的 docker 容器,现在我试图在容器内运行我的单元测试失败。我需要一个 headless 浏览器来运行我的测试,而 PhantomJS 对我来说太麻烦了,在运行测试时,Chrome 也会给出不同的结果。
在这里,我提供我的 Dockerfile:
# download (or use if it's in cache) the latest official image from node
FROM node:latest
# create directory in the container and set all privileges
RUN mkdir -p /usr/src/app && chmod 777 /usr/src/app
# make the directory available for following commands
WORKDIR /usr/src/app
# copy all local's frontend content to the WORKDIR
COPY . /usr/src/app
# Expose the port the app runs in
EXPOSE 4200
CMD ["npm", "start"]
我尝试使用 Headless Chrome,但它仍然需要一些我不知道如何进行的配置。有人有什么想法吗?
最佳答案
经过大量调查,我找到了一种方法:
我在我的前端 Dockerfile 中安装了 Chrome:
RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN echo 'deb http://dl.google.com/linux/chrome/deb/ stable main' >> /etc/apt/sources.list
RUN apt-get update && apt-get install --no-install-recommends -y google-chrome-stable
我使用 headless Chrome 进行测试,并在 karma.config 中进行了适当的配置:
browsers: ['Chrome_without_sandbox'],
customLaunchers: {
Chrome_without_sandbox: {
base: 'ChromeHeadless',
flags: ['--no-sandbox'] // with sandbox it fails under Docker
}
},
关于angular - 如何在 Docker 容器内运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45458468/
我是一名优秀的程序员,十分优秀!