如何使用 gitlab-ci-multi-运行ner 在 GitLab CI 中自动 运行 测试

How to run tests automatically in GitLab CI using gitlab-ci-multi-runner

我开始使用 GitLab CI,使用 gitlab-ci-multi-运行ner for Windows(64 位)。到目前为止一切正常,与我的存储库有连接,每次推送时我配置的作业都会启动。

我现在想做的是做一份 运行s npm install 下载所有依赖项的工作 cies 和一份执行我用 [=32] 编写的所有测试的工作=] 通过 运行ning karma start karma.conf.js 或使用 g运行t 和 运行ning grunt test.

所以我尝试的第一份工作是:

cd app
npm install
karma start karma.conf.js

前两条命令被执行,但最后一条被完全忽略。所以我试图拆分工作。第一个命令有自己的工作(选项卡 "run in parallel"),最后一个命令在选项卡 "run on success" 中移动到自己的工作。现在所有 dependencies 都安装好了,第二个工作开始了。到目前为止一切顺利,但第二项工作开始于删除所有以前安装的依赖项ci,然后尝试 运行 karma start karma.conf.js。这显然以所有测试失败而告终,因为 npm 依赖项 "angular-mocks" 未下载。如果我将 npm install 添加到第二份工作(这对我来说意义不大),业力任务将再次被忽略。

这里有什么问题?我怎样才能解决这个问题?有没有办法不总是在每次测试执行时下载所有依赖项ci?

自发布此问题后,Gitlab CI 已切换到使用 .gitlab-ci.yml 进行配置。我相信安装依赖项的推荐方法是使用 before_script 命令,例如

before_script:
  - npm install

test:
  script: npm test

我想 post 下面是我的最终解决方案,以帮助其他人解决这个问题。我的 .gitlab-ci.yaml 文件和我的 karma.conf.js 位于 app-root 目录中。对于业力,我正在使用 PhantomJS,它非常适合 Windows 以及我的 linux 服务器。

Windows的解决方案:

image: node:4.2.2

cache:
  paths:
  - node_modules/

stages:
  - test

test_app:
  stage: test
  script:
    - run npm install  
    - run karma start karma.conf.js

目前我正在为 testing/building 我的应用程序使用 linux 服务器。您必须删除 "run" 才能使其适用于 linux.

如果您有不止一份工作,您可以将依赖项安装命令移动到 "before_script" 部分,就像 Tamlyn 上面写的那样。

如果它仍然不适合您,请告诉我。也许我有更多的想法......我为此做了很多工作,让它发挥作用。