JavaRush /جاوا بلاگ /Random-SD /ڪوڊ ڪوريج
Nikita Koliadin
سطح
Днепр

ڪوڊ ڪوريج

گروپ ۾ شايع ٿيل
سلام، دوست، ساٿي ۽... پينگوئن! اڄ اسان ڪوڊ ڪوريجڪوڊ ڪوريج - 1 بابت ڳالهائينداسين ، اسان اهو معلوم ڪنداسين ته اهو ڇا آهي، ڇو ان جي ضرورت آهي ۽ ڪوڊ ڪوريج جا انگ اکر مهيا ڪندي توهان جي اوپن سورس پروجيڪٽ کي ڪيئن اپڊيٽ ڪيو وڃي. هي آرٽيڪل مسلسل انٽيگريشن بابت گذريل مضمون جو هڪ مختصر تسلسل آهي . هتي اسان سي آءِ جو هڪ ٻيو طاقتور فائدو سکنداسين جنهن سان گڏ... ۽ جلد ئي توهان کي معلوم ٿيندو ته ڇا سان! مان صرف ان ڳالهه تي زور ڏيندس ته هتي ڪا به هدايت نه هوندي ته توهان جي پروگرامن لاءِ ٽيسٽ ڪيئن لکجي، ۽ وڌ کان وڌ مفيد ڪوريج ڪيئن حاصل ڪجي؛ اهو سڄو گناهه توهان جي ڪلهن تي ئي رهندو. سو، اچو ته هلون!

ڪوڊ ڪوريج ڇا آهي؟

ڪوڊ ڪوريج ھڪڙو خاص قدر آھي جيڪو اسان کي ڏيکاري ٿو ماخذ ڪوڊ جو سيڪڙو ٽيسٽ دوران مڪمل ڪيو ويو. ٺيڪ آهي، هتي هر شيء صاف لڳي ٿي. ڪوڊ ڪوريج فيصد 0 کان 100 تائين ٿي سگھي ٿو، ۽ سوال پيدا ٿي سگھي ٿو: ڇا توھان کي وڌ ۾ وڌ سي سي فيصد لاءِ ڪوشش ڪرڻ گھرجي؟ منهنجو جواب آهي: ها ۽ نه. ائين ڇو آهي؟ اچو ته چئو ته توهان هڪ پروجيڪٽ ٺاهيو جيڪو ڪجهه ٻين منصوبن پاران استعمال ڪيو ويندو، اهو ڪارڪردگي سان ڀريل آهي، ۽ سڀني خوفناڪن ۾ اتي حاصل ڪندڙ ۽ سيٽرز آهن، ۽ انهن مان ڪافي ٿورا آهن. جڏهن ڪارڪردگي کي ڍڪيندي، سڀئي نه، چئو، گيٽرز ڍڪيل هئا، پر توهان پڪ سان ڄاڻو ٿا ته اهي جيڪي ڍڪيل نه هئا اهي توهان جي پروجيڪٽ ۾ نه سڏيا ويا آهن، پر حاصل ڪندڙ هميشه "پنهنجي لاء" نه لکيا ويندا آهن، تنهنڪري انهن جي ضرورت آهي " ڪلائنٽ ". ڇا ڪجي؟ هر حاصل ڪندڙ کي الڳ الڳ ڍڪيو؟ اهو اثرائتو جانچ نه ٿيندو. پر جيڪڏهن اسان انهن کي ڍڪي نه ٿا ڏيون، اسان وڌ ۾ وڌ سي سي فيصد حاصل نه ڪنداسين. اهو آهي جتي هڪ ٻه طرفي تلوار پيدا ٿئي ٿي.

اسان کي ڪوڊ ڪوريج جي ضرورت ڇو آهي؟

مان سمجهان ٿو ته هن سوال جو جواب بلڪل سادو هوندو: ڪنهن به ڪوڊ کي جانچ جي ضرورت آهي ته جيئن ريفڪٽر ڪرڻ يا شامل ڪرڻ/تبديل ڪرڻ واري ڪارڪردگي، "پوشیدہ" بگ پيدا نه ٿين، ۽ اسان انهن کي ٽريڪ ڪري سگهون ٿا. اسان بريڪ پوائنٽس ۽ ڊيبگرز سان فريم ورڪ ذريعي نه هلنداسين ۽ هن خراب بگ کي پڪڙينداسين. زندگي تمام مختصر آهي. مثال طور، سڀ کان وڌيڪ دلچسپ شيء. ڪم هي آهي: اسان جي اوپن سورس پروجيڪٽ ۾ متعارف ڪرايو، جيڪو اسان گذريل مضمون ۾ لکيو هو ، هڪ ٽيڪنالاجي جيڪا 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