fayeah / blogs

方法论、问题驱动、总结
6 stars 0 forks source link

单元测试集成到Gitlab CI #57

Open fayeah opened 2 years ago

fayeah commented 2 years ago

一、技术栈

   vue3+jest 

二、结果:

image

image

image

image

三、文件配置:

stages:
  - pages

pages:
  stage: pages
  script:
    - npm install
    - npm run test
    - mkdir .public
    - cp -r coverage/* .public
    - rm -rf public
    - mv .public public
  artifacts:
    paths:
      - public
    when: always
    reports:
      junit:
        - junit.xml
      cobertura: coverage/cobertura-coverage.xml
  tags:
    - some-runner

注:

  1. stage名需为pages,否则无法生成page 链接。
  2. npm run test的脚本为: "test": "jest --config ./jest.config.js --collectCoverage --coverageDirectory=\"./coverage\" --ci --reporters=default --reporters=jest-junit --watchAll=false"
module.exports = {
  moduleFileExtensions: [
    'js',
    'ts',
    'json',
    'vue',
    'tsx'
  ],
  transform: {
    '^.+\\.ts$': 'ts-jest',
    '^.+\\.vue$': 'vue-jest',
    '^.+\\.tsx$': 'vue-jest',
    "^.+\\.js$": "<rootDir>/node_modules/babel-jest",
  },
  modulePaths: ["src"],
  moduleDirectories: ["node_modules"],
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/src/$1'
  },
  collectCoverageFrom: [
    "src/**/*.{js,ts,tsx}",
    "!<rootDir>/node_modules/"
  ],
  coverageReporters: ["html", "text", "text-summary", "cobertura"],
}

四、Gitlab设置:

image

image

image