برنامه نویسی

با Karma/Jest و Husky پوشش هر ویژگی را افزایش دهید

آیا تا به حال ویژگی های جدیدی را اضافه کرده اید و پس از مدتی به نظر می رسد که پوشش در حال کاهش است، حتی اگر در حال ایجاد یا به روز رسانی برخی از تست ها باشید؟

من می خواهم توضیح دهم که چگونه می توانیم همیشه مطمئن باشیم که پوشش افزایش می یابد و نه برعکس. این ترکیبی از دو چیز است:

1 – درصد پوشش خود را بررسی کنید

ابتدا باید از این پوشش مطمئن شویم کاهش نمی یابد بیش از درصد معینی

این یک مثال برای کسانی است که از Karma استفاده می کنند:

// karma.conf.js
module.exports = function (config) {
  config.set({
    ...
    coverageReporter: {
      ...
      check: {
        global: {
          statements: 42.7,
          lines: 44.0,
          branches: 41.4,
          functions: 26.0,
        },
      },
    },
    ...
};
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یا اگر از Jest استفاده می کنید:

// jest.config.js
{
...
"jest": {
  "coverageThreshold": {
    "global": {
      "branches": 50,
        "functions": 50,
        "lines": 50,
        "statements": 50
    }
  }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این دستور را تحریک می کند شکست (معمولاً تست npm یا معادل آن)، اگر حداقل یکی از آنها به حداقل مورد نیاز نمی رسد.

2 – قبل از هل دادن تست ها را اجرا کنید

دومین کاری که باید انجام دهید این است که تمام تست های خود را فقط اجرا کنید قبل از فشار دادن تغییرات به مخزن
این فقط یک ایده است، شاید بخواهید قبل از انجام آن تغییرات، آن را انجام دهید، من آن را به شما واگذار می کنم.

برای انجام این کار، من از هاسکی استفاده می کنم. شما فقط باید آن را نصب کنید و سپس اولین قلاب خود را به این صورت ایجاد کنید:

// .husky/pre-push
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

[ -n "$CI" ] && exit 0

npm run test
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

شما یک برنامه زاویه ای دارید که می توانید این نمونه ها را پیدا کنید که از کارما و هاسکی در این مخزن استفاده می کند.

ممنون که خواندید و امیدوارم یاد گرفته باشید یک چیز جدید!

پست های اخیر بیشتر اینجا! ismaelramos.dev#blog

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا