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 .-
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 я делать не рекомендую, ведь есть более хороший, более функциональный альтернативный вариант, и даже не один.
-
Заходим CodeCov Setup выбираем язык Java и выбираем Using JaCoCo плагин, и ставим по инструкции.
-
По той же ссылке выбираем 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:
-
-
Плагин стоит. Все вроде бы замечательно. Но если вы внимательно читали инструкцию по установке JaCoCo plugin, там было указание, добавить в .travis.yml строчку, отвечающую за отправку отчёта plugin на сайт Codecov.
Итак, исходя из Using JaCoCo, нам нужно вписать в наш файл:
after_success: - bash <(curl -s https://codecov.io/bash)
Вписали. Отлично.
-
Все вроде готово, и остались финальные штрихи. Во-первых давайте скомпorруем наш code, и запустим все тесты, причем сделаем это через Lifecycle Maven:
Так How у нас в плагине JaCoCo стоит фаза выполнения test, то должен был появится отчет после выполнения цикла тестов Maven в папке target:
-
Подходим к завершению. Мы видим что все работает прекрасно, осталось лишь убедится что это "все прекрасно" также будет работать на внешних источниках. Настала пора собрать все в кучу. Собираем проект и делаем push на GitHub, перед этим открыв Travis CI и Codecov для мониторинга происходящего.
После push мы видим что сборка успешная:
И результат JaCoCo plugin о покрытии codeа:
-
Помните нашу задачу? Да, да, мы забыл про бейджик. Я хотел вынести тему "Украшение" open-source project'ов в отдельную статью, но маленькую часть все же оставлю здесь.
Итак, пошаговая инструкция что бы не заблудится:
-
Переходим на сайт Codecov;
-
Выбираем проект, который вам нужно;
-
Выбираем Setting:
-
Выбираем Badge и видим ссылки на ваш бейджик в несколько различных формах представления:
Первые это стандартные бейджики, их можно вставить, например, в ваш README.md:
Их особенность в том что при кликании на них вас будет перенаправлять на page с отчетом о CC;
Вторые это графы, таблицы и тому подобные штуки:
-
- Мой тестовый проект, который вы можете скачать, посмотреть, оценить. Все по этой статье находится в branch: JaCoCo;
- Alat Liputan Kod Java ;
- Alternatif JaCoCo ;
- Perpustakaan JaCoCo ;
- Ketergantungan Pemalam JaCoCo Maven ;
- Tutorial persediaan Codecov ;
- Sebenarnya menubuhkan JaCoCo sendiri ;
- Menyediakan Cobertura ;
GO TO FULL VERSION