最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

使用Azure管道和Docker运行Mocha测试

IT培训 admin 10浏览 0评论

使用Azure管道和Docker运行Mocha测试

我对CICD非常陌生。

我有一个Azure Web应用程序,运行从Express Node.js映像构建的Docker容器。

我的当前流程非常简单。我有一个类似于

的Azure-pipelines.yml文件
trigger:
- master

pool:
  vmImage: 'ubuntu-latest'    

- task: AzureCLI@1
  inputs:
    azureSubscription: 'xxxxxx'
    scriptLocation: 'inlineScript'
    inlineScript: 'az acr build --registry registry123 --image image123:latest --file Dockerfile .'

和一个看起来像的dockerfile

FROM node:10

WORKDIR /poc/microservices

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD [ "node", "server.js" ]

现在,我添加了一些可以用npm test运行的摩卡测试,并且这些测试在本地运行良好。

现在,我想将它们添加到管道中,以便在测试失败时不构建映像。

我有一个mocha.opts文件,其中定义了--reporter mocha-junit-reporter,并且测试使用的是process.env.ENDPOINT变量。

所以我的问题是如何将命令添加到管道中?

我是否简单地添加

- script: npm install
- script: npm test

到azure-pipelines.yml,然后在azure devOps门户中的构建变量中配置ENDPOINT变量?

如果是这样,那么我运行两次npm install没问题吗?一次在Azure中,一次在Docker中?

回答如下:

运行两次NPM安装只会减慢部署速度,并且如果不将node_modules复制到Docker容器中,也不会引起任何其他问题。

确保仅将源代码复制到Docker容器,并保留node_modules。您可以为此添加一个[[.dockerignore文件:

node_modules npm-debug.log Dockerfile .dockerignore
这将确保将软件包正确安装在Docker容器中。

使用Azure管道和Docker运行Mocha测试

我对CICD非常陌生。

我有一个Azure Web应用程序,运行从Express Node.js映像构建的Docker容器。

我的当前流程非常简单。我有一个类似于

的Azure-pipelines.yml文件
trigger:
- master

pool:
  vmImage: 'ubuntu-latest'    

- task: AzureCLI@1
  inputs:
    azureSubscription: 'xxxxxx'
    scriptLocation: 'inlineScript'
    inlineScript: 'az acr build --registry registry123 --image image123:latest --file Dockerfile .'

和一个看起来像的dockerfile

FROM node:10

WORKDIR /poc/microservices

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD [ "node", "server.js" ]

现在,我添加了一些可以用npm test运行的摩卡测试,并且这些测试在本地运行良好。

现在,我想将它们添加到管道中,以便在测试失败时不构建映像。

我有一个mocha.opts文件,其中定义了--reporter mocha-junit-reporter,并且测试使用的是process.env.ENDPOINT变量。

所以我的问题是如何将命令添加到管道中?

我是否简单地添加

- script: npm install
- script: npm test

到azure-pipelines.yml,然后在azure devOps门户中的构建变量中配置ENDPOINT变量?

如果是这样,那么我运行两次npm install没问题吗?一次在Azure中,一次在Docker中?

回答如下:

运行两次NPM安装只会减慢部署速度,并且如果不将node_modules复制到Docker容器中,也不会引起任何其他问题。

确保仅将源代码复制到Docker容器,并保留node_modules。您可以为此添加一个[[.dockerignore文件:

node_modules npm-debug.log Dockerfile .dockerignore
这将确保将软件包正确安装在Docker容器中。
发布评论

评论列表 (0)

  1. 暂无评论