• 持续集成时 travis 和 codecov 等 yaml 文件的配置


    最近在项目中在配置CodeCov 以及TravisAppVeyor做持续集成时,遇到了一些问题,也解决了一些问题。顺便拿来分享一下。

    首先时Travis,这个主要是来跑基于 Linux 环境下的一些测试的。你可以自定义push到 master上 或者 进行 pull request 时自动进行。

    其次时 AppVeyor 这个我在项目中主要是来跑Windows环境的,虽然说这个两个环境都可以跑。

    还有时 CodeCov 这个用来你的代码测试用例的可视化的,查看代码的覆盖率。

    下面就是各个 .yaml 文件的大致配置:

    # .travis.yml
    language: csharp
    sudo: true
    mono: none
    dotnet: 2.2
    dist: xenial
    branches:
      only:
        - master
    install:
      - dotnet tool install --global altcover.visualizer
      - cd Tests/ && dotnet add package AltCover && cd ../
      - dotnet restore
    script:
      - dotnet build
      - if [ $ACCESS_KEY_ID == "" ]; then dotnet test --filter Category!=FeatureTest /p:AltCover=true; else dotnet test /p:AltCover=true; fi
    after_success:
      - cd Tests/
      - bash <(curl -s https://codecov.io/bash) -c -F unittest
    
    # .appveyor.yml
    version: "1.0.{build}"
    image: Visual Studio 2017
    branches:
      only:
        - master
    init:
      - cmd: git config --global core.autocrlf true
    install:
      - cmd: dotnet --version
      - cmd: dotnet tool install --global altcover.visualizer
      - cmd: cd Tests/ && dotnet add package AltCover && cd ../
    build_script:
      - cmd: dotnet restore
      - cmd: dotnet build
    test_script:
      - dotnet build
      - IF NOT DEFINED ACCESS_KEY_ID (dotnet test aliyun-net-sdk-core.Tests /p:AltCover=true) ELSE (dotnet test /p:AltCover=true)
    on_finish:
      - cmd: cd Tests
      - ps: |
          $env:PATH = 'C:msys64usrin;' + $env:PATH
          Invoke-WebRequest -Uri 'https://codecov.io/bash' -OutFile codecov.sh
          bash codecov.sh -f "coverage.xml" -c -F unittest
    
    #.codecov.yml
    codecov:
      notify:
        after_n_builds: 2
    
    coverage:
      status:
        project:
          default: off
          unittest:
            flags: unittest
            target: 85%
          featuretest:
            flags: featuretest
    flags:
      unittest:
        # only test unittests
        paths:
          - Tests/
      featuretest:
        # only test featuretest
        paths:
          - feature-test/
    

    之前有一个需求是,执行具体的测试的时候不进行CodeCov, 比如进行 Feature Test 的时候就不用进行 Codecov,那么在配置文件中如何配置呢?
    这就需要使用 Codecov 的Flag 标签,执行测试的时候指定具体要执行的目录和标签。就可以解决这个问题了。

    flags:
      unittest:
        # only test unittests
        paths:
          - Tests/
    

    然后在生成时改成这个命令即可: bash codecov.sh -f "coverage.xml" -c -F unittest

  • 相关阅读:
    ThreadLocal总结
    zookeeper学习笔记
    安装solr
    VirtualBox安装Centos7
    Solr学习
    Redis缓存会出现的问题?
    面试题目总结
    mysql分库分表
    Java内存模型
    HashMap在多线程中循环链表问题(jdk1.7)
  • 原文地址:https://www.cnblogs.com/xiyin/p/10473614.html
Copyright © 2020-2023  润新知