Flutter 테스트: 리포지토리에 LCOV를 사용하여 단위 테스트 배지 생성

TLDR; 이 간행물에서는 여러분 모두가 테스트 및 테스트 용어와 방법을 작성하는 방법을 알고 있다고 가정했으며 여기서는 언급하지 않습니다.



LCOV란?



LCOV는 GCC의 커버리지 테스트 도구인 gcov의 그래픽 프런트 엔드입니다. 여러 소스 파일에 대한 gcov 데이터를 수집하고 커버리지 정보로 주석이 달린 소스 코드가 포함된 HTML 페이지를 생성합니다. 또한 파일 구조 내에서 쉽게 탐색할 수 있도록 개요 페이지를 추가합니다. LCOV는 명령문, 함수 및 분기 커버리지 측정을 지원합니다.

LCOV 설치



brew install lcov

  • 예제 앱 생성 — 플러터 카운터 앱





  • 예제 테스트 스크립트 ./test/widget_test.dart




    <script id="gist-ltag"src="https://gist.github.com/3lVv0w/8f4bdaab83a4adb1bd8ae6fdb2185647.js"/>




  • lcov의 목표



    • 코드 적용 범위를 확인합니다.
    • 고품질의 코드를 제공합니다.


    커버리지로 테스트를 수행하려면



    dev_dependencies 아래의 pubspec.yml에 라이브러리 설치test_coverage



    dev_dependencies:
        flutter_test:
           sdk: flutter
        test_coverage: ^0.4.2
    


    • 그런 다음 플래그와 함께 테스트 명령을 실행합니다.

    flutter test --coverage
    


    • 테스트가 완료되면 프로젝트 디렉토리에 'coverage' 폴더가 생성됩니다. 시각화된 결과를 보려면 다음 명령을 실행하세요.

    genhtml -o coverage coverage/lcov.info
    # Open in the default browser (mac):
    open coverage/index.html
    this is the html report, that generated out looks like.
    




    • 이제 커버리지 결과를 얻을 수 있지만 GitHub 리포지토리에 제시하고 싶습니다. 어떻게 해야 합니까? 배지를 받아야 합니다!!!

    배지 이미지를 생성하려면



    • 사용자가 프로젝트의 루트에 있다고 가정합니다.

    $ yarn init
    $ yarn add lcov2badge — more detail here
    


    • 그런 다음 커버리지 파일에서 배지를 생성하는 javascript 스크립트를 생성합니다.



    <script id="gist-ltag"src="https://gist.github.com/3lVv0w/bdefa8a2187fb323890fd99d425d573f.js"/>


    • README.md 파일 내에서 사용할 수 있는 ./coverage_badge.svg는 다음과 같습니다.






    ![Coverage](./coverage_badge.svg?sanitize=true)
    


    • 예제 Github 코드를 찾을 수 있습니다here!.



    <사업부 클래스="readme-개요">

    3lVv0w / test_lcov_bedge


    이 저장소는 단위 테스트를 위해 커버리지 배지 양식 lcov.info를 생성하는 방법을 보여줍니다.



    <사업부 클래스="ltag-github-body">

    test_lcov_bedge



    새로운 Flutter 프로젝트입니다.


    시작하기


    이 프로젝트는 Flutter 애플리케이션의 시작점입니다.


    첫 번째 Flutter 프로젝트인 경우 시작할 수 있는 몇 가지 리소스:



    Flutter를 시작하는 데 도움이 필요하면 다음을 참조하세요.
    online documentation 튜토리얼을 제공하는
    샘플, 모바일 개발 지침 및 전체 API 참조.





    View on GitHub



    나에게 질문/의견이 있는 경우 저에게 연락/팔로우할 수 있습니다.

    FB: 크리사다 비벡

    DEV.to:



    다음 기술 간행물을 보려면 Krisada Vivek을 팔로우하세요.



    감사합니다! ❤

    좋은 웹페이지 즐겨찾기