JavaRush /Blog Java /Random-MS /Liputan Kod
Nikita Koliadin
Tahap
Днепр

Liputan Kod

Diterbitkan dalam kumpulan
Salam, kawan, rakan sekerja dan... penguin! Liputan Kod - 1Hari ini kita akan bercakap tentang Liputan Kod , kita akan memikirkan apakah itu, mengapa ia diperlukan dan cara menaik taraf projek sumber terbuka anda dengan menyediakan statistik Liputan Kod. Rencana ini ialah kesinambungan singkat daripada artikel sebelumnya tentang Integrasi Berterusan . Di sini kita akan mempelajari satu lagi kelebihan hebat CI dalam kombinasi dengan... dan tidak lama lagi anda akan mengetahui dengan apa! Saya hanya akan menekankan bahawa tidak akan ada arahan di sini tentang cara menulis ujian dengan betul untuk program anda, dan cara mencapai liputan berguna maksimum yang mungkin; seluruh dosa ini hanya akan kekal di bahu anda. Jadi, mari pergi!

Apakah Liputan Kod?

Liputan Kod ialah nilai tertentu yang menunjukkan kepada kami peratusan kod sumber yang dilengkapkan semasa ujian. Okay, semuanya nampak jelas di sini. Peratusan Liputan Kod boleh berkisar antara 0 hingga 100, dan persoalan mungkin timbul: adakah anda perlu berusaha untuk peratusan CC maksimum? Jawapan saya ialah: ya dan tidak. Kenapa begitu? Katakan anda mencipta projek yang akan digunakan oleh beberapa projek lain, ia penuh dengan fungsi, dan di antara semua seram terdapat getter dan setter, dan terdapat beberapa daripadanya. Apabila meliputi fungsi, tidak semua, katakan, getter dilindungi, tetapi anda pasti tahu bahawa mereka yang tidak dilindungi tidak dipanggil dalam projek anda, tetapi getter tidak selalu ditulis "untuk diri mereka sendiri," jadi ia diperlukan untuk " pelanggan”. Apa nak buat? Tutup setiap getter secara berasingan? Ini tidak akan menjadi ujian yang berkesan. Tetapi jika kita tidak menutupnya, kita tidak akan mencapai peratusan CC maksimum. Di sinilah timbul pedang bermata dua.

Mengapa kita memerlukan Liputan Kod?

Saya rasa jawapan kepada soalan ini adalah sangat mudah: Sebarang kod memerlukan ujian supaya apabila memfaktorkan semula atau menambah/menukar fungsi, pepijat "tidak kelihatan" tidak timbul dan kami boleh menjejakinya. Kami tidak akan menjalankan rangka kerja dengan titik putus dan penyahpepijat dan menangkap Bug jahat ini. Hidup ini terlalu singkat. Contoh Jadi, perkara yang paling menarik. Tugasnya ialah: Memperkenalkan ke dalam projek sumber terbuka kami , yang kami tulis dalam artikel sebelumnya , teknologi yang akan mengumpul maklumat tentang CC, memprosesnya di suatu tempat, dan mungkin untuk meletakkan maklumat ini pada GitHub dalam bentuk lencana, contohnya. Semua kod sumber akan disiarkan pada GitHub saya .
  1. Mari kita mulakan dengan memilih pemalam untuk mengumpul maklumat liputan kod ke dalam satu longgokan. Saya secara peribadi memilih JaCoCo , yang mengumpul maklumat tentang liputan kod. Tetapi terdapat juga alternatif .

    Сайт 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:

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

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

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

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

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

    Liputan Kod - 3

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

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

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

    Liputan Kod - 5

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

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

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

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

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

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

      Liputan Kod - 7
    4. Выбираем Badge и видим ссылки на ваш бейджик в несколько различных формах представления:

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

      Liputan Kod - 8

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

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

      Liputan Kod - 9
Полезные ссылки Mungkin terdapat ralat dan ketinggalan dalam teks. Terima kasih semua atas perhatian anda!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION