JavaRush /جاوا بلاگ /Random-UR /کوڈ کوریج
Nikita Koliadin
سطح
Днепр

کوڈ کوریج

گروپ میں شائع ہوا۔
سلام، دوست، ساتھی اور... پینگوئن! کوڈ کوریج - 1آج ہم کوڈ کوریج کے بارے میں بات کریں گے، ہم یہ معلوم کریں گے کہ یہ کیا ہے، اس کی ضرورت کیوں ہے اور کوڈ کوریج کے اعدادوشمار فراہم کرکے اپنے اوپن سورس پروجیکٹ کو کیسے اپ گریڈ کریں۔ یہ مضمون مسلسل انضمام کے بارے میں پچھلے مضمون کا ایک مختصر تسلسل ہے ۔ یہاں ہم CI کا ایک اور طاقتور فائدہ سیکھیں گے... اور جلد ہی آپ کو پتہ چل جائے گا کہ کیا ہے! میں صرف اس بات پر زور دوں گا کہ یہاں کوئی ہدایات نہیں ہوں گی کہ آپ کے پروگراموں کے ٹیسٹ کیسے لکھیں، اور زیادہ سے زیادہ ممکنہ مفید کوریج کیسے حاصل کریں؛ یہ سارا گناہ صرف آپ کے کندھوں پر ہی رہے گا۔ تو چلو چلتے ہیں!

کوڈ کوریج کیا ہے؟

کوڈ کوریج ایک خاص قدر ہے جو ہمیں جانچ کے دوران مکمل ہونے والے سورس کوڈ کا فیصد دکھاتی ہے۔ ٹھیک ہے، یہاں سب کچھ واضح لگتا ہے۔ کوڈ کوریج کا فیصد 0 سے 100 تک ہو سکتا ہے، اور سوال پیدا ہو سکتا ہے: کیا آپ کو زیادہ سے زیادہ CC فیصد کے لیے کوشش کرنی چاہیے؟ میرا جواب ہے: ہاں اور نہیں۔ ایسا کیوں ہے؟ ہم کہتے ہیں کہ آپ ایک پروجیکٹ بناتے ہیں جو کچھ دوسرے پروجیکٹس کے ذریعہ استعمال کیا جائے گا، یہ فعالیت سے بھرا ہوا ہے، اور تمام خوفناک باتوں کے درمیان گیٹرز اور سیٹرز ہیں، اور ان میں سے بہت کم ہیں۔ فنکشنلٹی کا احاطہ کرتے وقت، تمام نہیں، کہتے ہیں، حاصل کرنے والوں کا احاطہ کیا گیا تھا، لیکن آپ یقینی طور پر جانتے ہیں کہ جن کا احاطہ نہیں کیا گیا تھا انہیں آپ کے پروجیکٹ میں نہیں بلایا جاتا ہے، لیکن حاصل کرنے والوں کو ہمیشہ "خود کے لیے" نہیں لکھا جاتا، اس لیے ان کی ضرورت ہوتی ہے۔ کلائنٹ"۔ کیا کرنا ہے؟ ہر حاصل کرنے والے کو الگ سے ڈھانپیں؟ یہ مؤثر جانچ نہیں ہوگی۔ لیکن اگر ہم ان کا احاطہ نہیں کرتے ہیں، تو ہم زیادہ سے زیادہ CC فیصد حاصل نہیں کر پائیں گے۔ یہیں سے دو دھاری تلوار اٹھتی ہے۔

ہمیں کوڈ کوریج کی ضرورت کیوں ہے؟

میرے خیال میں اس سوال کا جواب بہت آسان ہوگا: کسی بھی کوڈ کو جانچ کی ضرورت ہوتی ہے تاکہ ری فیکٹرنگ یا فعالیت کو شامل/تبدیل کرتے وقت، "غیر مرئی" کیڑے پیدا نہ ہوں، اور ہم انہیں ٹریک کر سکیں۔ ہم بریک پوائنٹس اور ڈیبگرز کے ساتھ فریم ورک کے ذریعے نہیں چلیں گے اور اس گھٹیا بگ کو نہیں پکڑیں ​​گے۔ زندگی بہت مختصر ہے. مثال تو، سب سے دلچسپ بات۔ کام یہ ہے: ہمارے اوپن سورس پروجیکٹ میں متعارف کروائیں ، جسے ہم نے پچھلے مضمون میں لکھا تھا، ایک ایسی ٹیکنالوجی جو CC کے بارے میں معلومات اکٹھی کرے گی، اس پر کہیں کارروائی کرے گی، اور اس معلومات کو GitHub پر ایک شکل میں رکھنا ممکن ہوگا۔ بیج، مثال کے طور پر. تمام سورس کوڈ میرے GitHub پر پوسٹ کیے جائیں گے ۔
  1. آئیے کوڈ کوریج کی معلومات کو ایک ڈھیر میں جمع کرنے کے لیے ایک پلگ ان کا انتخاب کرکے شروع کریں۔ میں نے ذاتی طور پر JaCoCo کا انتخاب کیا ، جو کوڈ کوریج کے بارے میں معلومات اکٹھا کرتا ہے۔ لیکن اس کے متبادل بھی ہیں ۔

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

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

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

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

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

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

    کوڈ کوریج - 3

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

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

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

    کوڈ کوریج - 5

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

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

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

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

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

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

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

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

      کوڈ کوریج - 8

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

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

      کوڈ کوریج - 9
Полезные ссылки متن میں غلطیاں اور کوتاہیاں ہوسکتی ہیں۔ آپ کی توجہ کے لیے آپ سب کا شکریہ!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION