JavaRush /Blog Java /Random-VI /Mã số bảo hiểm
Nikita Koliadin
Mức độ
Днепр

Mã số bảo hiểm

Xuất bản trong nhóm
Xin chào các bạn, đồng nghiệp và... các chú chim cánh cụt! Mã Bảo hiểm - 1Hôm nay chúng ta sẽ nói về Bảo hiểm Mã , chúng ta sẽ tìm hiểu nó là gì, tại sao nó cần thiết và cách nâng cấp dự án nguồn mở của bạn bằng cách cung cấp số liệu thống kê về Bảo hiểm Mã. Bài viết này là sự tiếp nối ngắn gọn của bài trước về Tích hợp liên tục . Ở đây chúng ta sẽ tìm hiểu một lợi thế mạnh mẽ khác của CI khi kết hợp với... và bạn sẽ sớm tìm ra cái gì! Tôi sẽ chỉ nhấn mạnh rằng sẽ không có hướng dẫn nào ở đây về cách viết bài kiểm tra chính xác cho chương trình của bạn và cách đạt được mức độ bao phủ hữu ích tối đa có thể; toàn bộ tội lỗi này sẽ chỉ đè lên vai bạn. Vì vậy, chúng ta hãy đi!

Bảo hiểm Mã là gì?

Phạm vi mã là một giá trị nhất định cho chúng ta thấy tỷ lệ phần trăm mã nguồn được hoàn thành trong quá trình thử nghiệm. Được rồi, mọi thứ có vẻ rõ ràng ở đây. Tỷ lệ phần trăm Bảo hiểm Mã có thể dao động từ 0 đến 100 và câu hỏi có thể đặt ra: bạn có nên cố gắng đạt tỷ lệ phần trăm CC tối đa không? Câu trả lời của tôi là: có và không. Tại sao vậy? Giả sử bạn tạo một dự án sẽ được sử dụng bởi một số dự án khác, nó có đầy đủ chức năng và trong số tất cả những điều kinh dị đó có getters và setters, và có khá nhiều trong số đó. Khi đề cập đến chức năng, chẳng hạn, không phải tất cả các getter đều được đề cập, nhưng bạn biết chắc chắn rằng những cái không được đề cập sẽ không được gọi trong dự án của bạn, nhưng các getters không phải lúc nào cũng được viết “cho chính chúng”, vì vậy chúng cần thiết cho “ khách hàng". Phải làm gì? Che từng getter riêng biệt? Đây sẽ không phải là thử nghiệm hiệu quả. Nhưng nếu chúng ta không che chúng, chúng ta sẽ không đạt được tỷ lệ CC tối đa. Đây là nơi xuất hiện một con dao hai lưỡi.

Tại sao chúng ta cần Bảo hiểm Mã?

Tôi nghĩ câu trả lời cho câu hỏi này sẽ rất đơn giản: Bất kỳ mã nào cũng cần được kiểm tra để khi tái cấu trúc hoặc thêm/thay đổi chức năng, các lỗi “vô hình” không phát sinh và chúng tôi có thể theo dõi chúng. Chúng tôi sẽ không chạy qua các khung có điểm dừng và trình gỡ lỗi để bắt lỗi nguy hiểm này. Cuộc sống quá ngắn ngủi. Ví dụ Vì vậy, điều thú vị nhất. Nhiệm vụ là thế này: Đưa vào dự án nguồn mở của chúng tôi , mà chúng tôi đã viết trong bài viết trước , một công nghệ sẽ thu thập thông tin về CC, xử lý nó ở đâu đó và có thể đưa thông tin này lên GitHub dưới dạng một huy hiệu chẳng hạn. Tất cả mã nguồn sẽ được đăng trên GitHub của tôi .
  1. Hãy bắt đầu bằng cách chọn một plugin để thu thập thông tin về phạm vi mã vào một đống. Cá nhân tôi đã chọn JaCoCo , nơi thu thập thông tin về phạm vi bảo hiểm của mã. Nhưng cũng có những lựa chọn thay thế .

    Сайт JaCoCo предлагает нам скачать плагин, но качать мы нечего не будем, ведь мы используем Build System Maven. Заходим в Maven Repository и ищем JaCoCo Plugin. Берем последнюю версию, и вставляем в наш pom.xml зависимость.

    Но через dependencies я делать не рекомендую, ведь есть более хороший, более функциональный альтернативный вариант, и даже не один.

    1. Заходим CodeCov Setup выбираем язык Java и выбираем Using JaCoCo плагин, и ставим по инструкции.

    2. По той же ссылке выбираем Using Maven. Этот вариант будет даже лучше. Cobertura будет извлекать информацию из CI тестов, но увы и тут есть подвох. Все что выше JDK 7 (А на данный момент уже 10 есть) не подойдет. Поэтому мы остановимся на 1 варианте.

    В результате в нашем pom.xml должно было появиться что то вроде того:

    <!-- JaCoCo plugin -->
    <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.1</version>
        <executions>
            <execution>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </execution>
            <execution>
                <id>report</id>
                <phase>test</phase>
                <goals>
                    <goal>report</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

    И в Maven Projects в списке плагинов появится JaCoCo Plugin:

    Bảo hiểm mã - 2
  2. Плагин стоит. Все вроде бы замечательно. Но если вы внимательно читали инструкцию по установке JaCoCo plugin, там было указание, добавить в .travis.yml строчку, отвечающую за отправку отчёта plugin на сайт Codecov.

    Итак, исходя из Using JaCoCo, нам нужно вписать в наш файл:

    after_success:
      - bash <(curl -s https://codecov.io/bash)

    Вписали. Отлично.

  3. Все вроде готово, и остались финальные штрихи. Во-первых давайте скомпorруем наш code, и запустим все тесты, причем сделаем это через Lifecycle Maven:

    Bảo hiểm mã - 3

    Так How у нас в плагине JaCoCo стоит фаза выполнения test, то должен был появится отчет после выполнения цикла тестов Maven в папке target:

    Bảo hiểm mã - 4
  4. Подходим к завершению. Мы видим что все работает прекрасно, осталось лишь убедится что это "все прекрасно" также будет работать на внешних источниках. Настала пора собрать все в кучу. Собираем проект и делаем push на GitHub, перед этим открыв Travis CI и Codecov для мониторинга происходящего.

    После push мы видим что сборка успешная:

    Bảo hiểm mã - 5

    И результат JaCoCo plugin о покрытии codeа:

    Bảo hiểm mã - 6
  5. Помните нашу задачу? Да, да, мы забыл про бейджик. Я хотел вынести тему "Украшение" open-source project'ов в отдельную статью, но маленькую часть все же оставлю здесь.

    Итак, пошаговая инструкция что бы не заблудится:

    1. Переходим на сайт Codecov;

    2. Выбираем проект, который вам нужно;

    3. Выбираем Setting:

      Bảo hiểm mã - 7
    4. Выбираем Badge и видим ссылки на ваш бейджик в несколько различных формах представления:

      Первые это стандартные бейджики, их можно вставить, например, в ваш README.md:

      Bảo hiểm mã - 8

      Их особенность в том что при кликании на них вас будет перенаправлять на page с отчетом о CC;

      Вторые это графы, таблицы и тому подобные штуки:

      Mã Bảo hiểm - 9
Полезные ссылки Có thể có sai sót và thiếu sót trong văn bản. Cảm ơn tất cả các bạn đã quan tâm!
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION