VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

ہم اپنے کام میں پلیٹ فارم کو فعال طور پر استعمال کرتے ہیں۔ سونار کیوب کوڈ کے معیار کو اعلیٰ سطح پر برقرار رکھنے کے لیے۔ میں لکھے گئے منصوبوں میں سے ایک کو مربوط کرتے وقت VueJs+Typescript، مسائل پیدا ہوئے۔ لہذا، میں آپ کو مزید تفصیل سے بتانا چاہوں گا کہ ہم نے انہیں کیسے حل کیا۔

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

اس مضمون میں ہم بات کریں گے، جیسا کہ میں نے اوپر لکھا ہے، سونار کیوب پلیٹ فارم کے بارے میں۔ ایک چھوٹا سا نظریہ - یہ عام طور پر کیا ہے، ان لوگوں کے لیے جو اس کے بارے میں پہلی بار سن رہے ہیں:

سونار کیوب (سابقہ سونار) مسلسل معائنہ اور کوڈ کے معیار کی پیمائش کے لیے ایک اوپن سورس پلیٹ فارم ہے۔
MISRA C، MISRA C++، MITER/CWE اور CERT Secure Coding Standards پروگرامنگ کے معیارات کے مطابق کوڈ کے تجزیہ اور غلطی کا پتہ لگانے کی حمایت کرتا ہے۔ یہ OWASP ٹاپ 10 اور CWE/SANS ٹاپ 25 پروگرامنگ کی غلطیوں کی فہرستوں کی غلطیوں کو بھی پہچان سکتا ہے۔
اس حقیقت کے باوجود کہ پلیٹ فارم مختلف ریڈی میڈ ٹولز کا استعمال کرتا ہے، سونار کیوب نتائج کو ایک ہی ڈیش بورڈ تک گھٹا دیتا ہے، رنز کی تاریخ کو برقرار رکھتے ہوئے اور اس طرح آپ کو ترقی کے دوران سافٹ ویئر کے معیار میں تبدیلیوں کا عمومی رجحان دیکھنے کی اجازت دیتا ہے۔

مزید تفصیلات پر مل سکتی ہیں۔ سرکاری ویب سائٹ

پروگرامنگ زبانوں کی ایک بڑی تعداد کی حمایت کی جاتی ہے. اوپر دیے گئے لنک سے ملنے والی معلومات کو دیکھتے ہوئے، یہ 25 سے زیادہ زبانیں ہیں۔ کسی مخصوص زبان کو سپورٹ کرنے کے لیے، آپ کو مناسب پلگ ان انسٹال کرنا چاہیے۔ کمیونٹی ورژن میں کام کرنے کے لیے ایک پلگ ان شامل ہے۔ جاوا سکرپٹ (بشمول typeсript)، حالانکہ ویکی اس کے برعکس کہتا ہے۔ پیچھے جاوا سکرپٹ پلگ ان جوابات سونار جے ایس، ٹائپ اسکرپٹ کے لیے سونار ٹی ایس بالترتیب.

سرکاری کلائنٹ کو کوریج کی معلومات بھیجنے کے لیے استعمال کیا جاتا ہے۔ سونارکیوب سکینر، جو، سے ترتیبات کا استعمال کرتے ہوئے تشکیلفائل، یہ ڈیٹا سرور کو بھیجتا ہے۔ سونار کیوب مزید استحکام اور جمع کرنے کے لیے۔

کے لیے جاوا سکرپٹ وہاں ہے این پی ایم ریپر. تو، آئیے مرحلہ وار عمل درآمد شروع کریں۔ سونار کیوب в قول- منصوبے کا استعمال کرتے ہوئے ٹائپ اسکرپٹ.

سرور کو تعینات کرنے کے لیے سونار کیوب چلو فائدہ اٹھاتے ہیں ڈوکر کمپوز.

سونار یامل:

version: '1'
    services:
        simplesample-sonar:
            image: sonarqube:lts
            ports:
                - 9001:9000
                - 9092:9092
            network_mode: bridge

لانچ:

docker-compose -f sonar.yml up

اس کے بعد سونار کیوب دستیاب ہوں گے: http://localhost:9001 .

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا
اس میں ابھی تک کوئی پروجیکٹ نہیں ہے اور یہ منصفانہ ہے۔ ہم اس صورتحال کو درست کریں گے۔ میں نے سرکاری مثال کے منصوبے کے لئے لیا VueJS+TS+Jest. آئیے اسے اپنی طرف موڑیں:

git clone https://github.com/vuejs/vue-test-utils-typescript-example.git

پہلے ہمیں کلائنٹ کو انسٹال کرنے کی ضرورت ہے۔ سونار کیوبجسے کہا جاتا ہے سونار سکینرکے لئے npm ایک چادر ہے:

yarn add sonarqube-scanner

اور فوری طور پر کمانڈ شامل کریں۔ سکرپٹ اس کے ساتھ کام کرنے کے لئے.

package.json:

{
 … 
   scripts: {
      ...
      "sonar": "sonar-scanner"
      ...
   },
 …
}

اس کے بعد، سکینر کے کام کرنے کے لیے، آپ کو ایک خاص فائل میں پروجیکٹ کی سیٹنگز سیٹ کرنے کی ضرورت ہے۔ آئیے بنیادی باتوں سے شروع کریں۔

sonar-project.properties:

sonar.host.url=http://localhost:9001

sonar.projectKey=test-project-vuejs-ts
sonar.projectName=Test Application (VueJS+TS)

sonar.sources=src
# sonar.tests=
sonar.test.inclusions=src/**/*tests*/**
sonar.sourceEncoding=UTF-8

  • sonar.host.url --.پتہ n سونار'ا;
  • sonar.projectKey - سرور پر منفرد پروجیکٹ شناخت کنندہ سونار'ا;
  • sonar.projectName - اس کا نام، اسے کسی بھی وقت تبدیل کیا جا سکتا ہے، کیونکہ پروجیکٹ کی شناخت کی گئی ہے۔ پروجیکٹ کی;
  • سونار۔ذرائع - ذرائع کے ساتھ فولڈر، عام طور پر یہ ایسآرسی، لیکن کچھ بھی ہو سکتا ہے۔ یہ فولڈر روٹ فولڈر کی نسبت سیٹ کیا گیا ہے، جو وہ فولڈر ہے جہاں سے سکینر لانچ کیا گیا ہے۔
  • سونار ٹیسٹ - ایک پیرامیٹر جو پچھلے ایک کے ساتھ مل کر جاتا ہے۔ یہ وہ فولڈر ہے جہاں ٹیسٹ ہوتے ہیں۔ اس پروجیکٹ میں، ایسا کوئی فولڈر نہیں ہے، اور ٹیسٹ فولڈر میں ٹیسٹ کیے جانے والے اجزاء کے ساتھ ہی واقع ہے۔ٹیسٹ'، لہذا ہم اسے ابھی نظر انداز کر دیں گے اور اگلا پیرامیٹر استعمال کریں گے۔
  • sonar.test.inclusion - ماسک کا استعمال کرتے ہوئے ٹیسٹوں کا راستہ، کوما سے الگ کیے گئے کئی عناصر ہو سکتے ہیں۔
  • sonar.source انکوڈنگ - سورس فائلوں کے لیے انکوڈنگ۔

اسکینر کے پہلے لانچ کے لیے، سب کچھ تیار ہے، ماسوائے اہم سابقہ ​​کارروائی کے: ٹیسٹ انجن کو خود لانچ کرنا، تاکہ یہ کوریج کے بارے میں معلومات پیدا کر سکے، جسے اسکینر بعد میں استعمال کرے گا۔

لیکن ایسا کرنے کے لیے، آپ کو یہ معلومات تیار کرنے کے لیے ٹیسٹ انجن کو ترتیب دینے کی ضرورت ہے۔ اس منصوبے میں، ٹیسٹ انجن ہے جینے. اور اس کی سیٹنگز فائل کے متعلقہ سیکشن میں ہیں۔ package.json.

آئیے ان ترتیبات کو شامل کریں:

"collectCoverage": true,
"collectCoverageFrom": [
      "src/**/*",
      "!src/main.ts",
      "!src/App.vue",
      "!src/**/*.d.*",
      "!src/**/*__tests__*"
],

یعنی، ہم نے کوریج اور ذریعہ (استثنیات کے ساتھ) کا حساب لگانے کی ضرورت کے لیے جھنڈا خود ترتیب دیا ہے جس کی بنیاد پر یہ تشکیل دیا جائے گا۔

اب ٹیسٹ چلائیں:

yarn test

ہم مندرجہ ذیل دیکھیں گے:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

وجہ یہ ہے کہ جزو میں ہی کوئی کوڈ نہیں ہے۔ آئیے اسے ٹھیک کریں۔

HelloWorld.vue:

...
methods: {
    calc(n) {
      return n + 1;
    }
  },
mounted() {
  this.msg1 = this.msg + this.calc(1);
},
...

یہ کوریج کا حساب لگانے کے لیے کافی ہوگا۔

ٹیسٹ دوبارہ شروع کرنے کے بعد، ہم اس بات کو یقینی بنائیں گے:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

اسکرین پر ہمیں کوریج کے بارے میں معلومات نظر آنی چاہئیں، اور پروجیکٹ فولڈر میں ایک فولڈر بنایا جائے گا۔ کوریج یونیورسل فارمیٹ میں ٹیسٹ کوریج کی معلومات کے ساتھ LCOV (LTP GCOV توسیع).

Gcov کوڈ کوریج کی جانچ کے لیے آزادانہ طور پر تقسیم کی جانے والی افادیت ہے۔ Gcov ایک پروگرام میں ہر بیان کے لیے عمل درآمد کی صحیح تعداد تیار کرتا ہے اور آپ کو سورس کوڈ میں تشریحات شامل کرنے کی اجازت دیتا ہے۔ Gcov GCC پیکیج کے حصے کے طور پر ایک معیاری افادیت کے طور پر آتا ہے۔
Lcov - gcov کے لیے گرافیکل انٹرفیس۔ یہ متعدد سورس فائلوں کے لیے gcov فائلوں کو جمع کرتا ہے اور کوڈ اور کوریج کی معلومات کے ساتھ HTML صفحات کا ایک سیٹ تیار کرتا ہے۔ نیویگیشن کو آسان بنانے کے لیے صفحات بھی بنائے جاتے ہیں۔ Lcov تاروں، فنکشنز اور شاخوں کی کوریج کو سپورٹ کرتا ہے۔

ٹیسٹ مکمل ہونے کے بعد، کوریج کی معلومات اس میں موجود ہوں گی۔ coverage/lcov.info.
ہمیں کہنے کی ضرورت ہے۔ سونار'میں اسے کہاں سے لا سکتا ہوں؟ لہذا، آئیے درج ذیل لائنوں کو اس کی کنفیگریشن فائل میں شامل کریں۔ لیکن ایک نکتہ ہے: پروجیکٹس کثیر لسانی ہو سکتے ہیں، یعنی فولڈر میں ایسآرسی کئی پروگرامنگ زبانوں کے لیے سورس کوڈز ہیں اور ایک یا دوسری سے وابستگی، اور بدلے میں، ایک یا دوسرے پلگ ان کے استعمال کا تعین اس کی توسیع سے ہوتا ہے۔ اور کوریج کی معلومات کو مختلف پروگرامنگ زبانوں کے لیے مختلف جگہوں پر ذخیرہ کیا جا سکتا ہے، اس لیے ہر زبان کو اس ترتیب دینے کے لیے اپنا ایک سیکشن ہوتا ہے۔ ہمارا پروجیکٹ استعمال کرتا ہے۔ ٹائپ اسکرپٹ، تو ہمیں اس کے لیے صرف ایک سیٹنگ سیکشن کی ضرورت ہے:

sonar-project.properties:

sonar.typescript.coveragePlugin=lcov
sonar.typescript.lcov.reportPaths=coverage/lcov.info

سکینر کے پہلے لانچ کے لیے سب کچھ تیار ہے۔ میں نوٹ کرنا چاہوں گا کہ یہ منصوبہ ہے۔ سونار'e خود بخود بن جاتا ہے جب آپ پہلی بار کسی دیئے گئے پروجیکٹ کے لیے سکینر چلاتے ہیں۔ بعد کے اوقات میں، وقت کے ساتھ ساتھ پروجیکٹ کے پیرامیٹرز میں ہونے والی تبدیلیوں کی حرکیات کو دیکھنے کے لیے معلومات جمع کی جائیں گی۔

تو، آئیے پہلے بنائی گئی کمانڈ کا استعمال کریں۔ package.json:

yarn run sonar 

نوٹ: آپ پیرامیٹر بھی استعمال کر سکتے ہیں۔ -X مزید تفصیلی لاگنگ کے لیے۔

اگر اسکینر پہلی بار لانچ کیا گیا تھا، تو اسکینر کی بائنری ہی پہلے ڈاؤن لوڈ کی جائے گی۔ اس کے بعد یہ شروع ہوتا ہے اور سرور کو اسکین کرنا شروع کر دیتا ہے۔ سونارانسٹال شدہ پلگ انز کے لیے، اس طرح معاون زبان کا حساب لگانا۔ اس کے آپریشن کے لیے مختلف دیگر پیرامیٹرز بھی بھری ہوئی ہیں: کوالٹی پروفائلز، ایکٹو رولز، میٹرکس ریپوزٹری، سرور رولز.

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

نوٹ: ہم اس مضمون کے فریم ورک میں ان پر تفصیل سے غور نہیں کریں گے، لیکن آپ ہمیشہ سرکاری ذرائع سے رابطہ کر سکتے ہیں۔

اگلا، فولڈر کا تجزیہ شروع ہوتا ہے۔ ایسآرسی سب کے لیے سورس فائلوں کی دستیابی کے لیے (اگر کسی مخصوص کو واضح طور پر متعین نہیں کیا گیا ہے) معاون زبان، ان کے بعد کے اشاریہ سازی کے ساتھ۔

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

اس کے بعد مختلف دوسرے تجزیے آتے ہیں، جن پر ہم اس مضمون میں توجہ نہیں دیتے ہیں (مثال کے طور پر، لنٹنگ، کوڈ ڈپلیکیشن کا پتہ لگانا وغیرہ)۔

اسکینر کے کام کے بالکل آخر میں، تمام جمع کی گئی معلومات کو جمع کیا جاتا ہے، محفوظ کیا جاتا ہے اور سرور کو بھیج دیا جاتا ہے۔

اس کے بعد، ہم پہلے ہی دیکھ سکتے ہیں کہ ویب انٹرفیس میں کیا ہوا:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

جیسا کہ ہم دیکھ سکتے ہیں، کچھ کام ہوا، اور یہاں تک کہ کسی قسم کی کوریج بھی دکھاتا ہے، لیکن یہ ہمارے ساتھ میل نہیں کھاتا جینے-رپورٹ

آئیے اس کا پتہ لگائیں۔ آئیے پروجیکٹ کو مزید تفصیل سے دیکھیں، کوریج ویلیو پر کلک کریں، اور تفصیلی فائل رپورٹ میں "فال تھرو" کریں:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

یہاں ہم اہم، جانچ شدہ فائل کے علاوہ دیکھتے ہیں۔ HelloWorld.vue، ایک فائل بھی ہے۔ main.ts، جو کوریج کی پوری تصویر کو خراب کر دیتا ہے۔ لیکن ہم نے اسے کوریج کے حساب سے کیسے خارج کر دیا؟ جی ہاں، سب کچھ درست ہے، لیکن یہ سطح پر تھا جینے، لیکن اسکینر نے اسے ترتیب دیا، لہذا یہ اس کے حساب میں ختم ہوا۔

آئیے اسے ٹھیک کریں:

sonar-project.properties:

...
sonar.exclusions=src/main.ts
...

میں ایک وضاحت کرنا چاہوں گا: اس پیرامیٹر میں بیان کردہ فولڈرز کے علاوہ، پیرامیٹر میں درج تمام فولڈرز بھی شامل کیے گئے ہیں۔ sonar.test.inclusion.

سکینر شروع کرنے کے بعد، ہم درست معلومات دیکھتے ہیں:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

آیئے اگلا نکتہ دیکھتے ہیں- کوالٹی پروفائلز. میں نے اوپر سپورٹ کے بارے میں بات کی ہے۔ سونارایک ہی وقت میں کئی زبانیں۔ یہ بالکل وہی ہے جو ہم دیکھ رہے ہیں۔ لیکن ہم جانتے ہیں کہ ہمارا پروجیکٹ لکھا ہوا ہے۔ TS، تو کیوں اسکینر کو غیر ضروری ہیرا پھیری اور جانچ پڑتال کے ساتھ دباؤ ڈالیں۔ ہم کنفیگریشن فائل میں ایک اور پیرامیٹر شامل کرکے تجزیہ کے لیے زبان مقرر کریں گے۔ سونارA:

sonar-project.properties:

...
sonar.language=ts
...

آئیے اسکینر کو دوبارہ چلائیں اور نتیجہ دیکھیں:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

کوریج بالکل ختم ہو چکی تھی۔

اگر ہم اسکینر لاگ کو دیکھیں تو ہم درج ذیل لائن دیکھ سکتے ہیں:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

یعنی، ہماری پروجیکٹ فائلوں کو صرف انڈیکس نہیں کیا گیا تھا۔

صورت حال مندرجہ ذیل ہے: سرکاری طور پر حمایت کی VueJs پلگ ان میں ہے۔ سونار جے ایسکون ذمہ دار ہے جاوا سکرپٹ.

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

لیکن یہ سپورٹ پلگ ان میں نہیں ہے۔ سونار ٹی ایس لیے TS، جس کے بارے میں بگ ٹریکر میں ایک آفیشل ٹکٹ کھولا گیا تھا۔ سونارA:

  1. https://jira.sonarsource.com/browse/MMF-1441
  2. https://github.com/SonarSource/SonarJS/issues/1281

یہاں سونار کیوب ڈویلپرز کے نمائندوں میں سے ایک کے کچھ جوابات ہیں، جو اس حقیقت کی تصدیق کرتے ہیں۔

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

لیکن سب کچھ ہمارے لئے کام کرتا ہے، آپ اعتراض کرتے ہیں. ہاں یہ ہے، آئیے اسے تھوڑا سا آزماتے ہیں۔ "ہیک".
اگر کوئی سہارا ہے۔ .vue-فائلوں سونار'اوہ، پھر آئیے اسے بتانے کی کوشش کرتے ہیں کہ وہ ان پر غور کرے۔ ٹائپ اسکرپٹ.

آئیے ایک پیرامیٹر شامل کریں:

sonar-project.properties:

...
sonar.typescript.file.suffixes=.ts,.tsx,.vue
...

آئیے اسکینر لانچ کریں:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

اور، voila، سب کچھ معمول پر آ گیا ہے، اور صرف ایک پروفائل کے ساتھ ٹائپ اسکرپٹ. یہ ہے، ہم نے حمایت میں مسئلہ کو حل کرنے میں کامیاب کیا VueJs+TS لیے سونار کیوب.

آئیے مزید آگے جانے کی کوشش کریں اور کوریج کی معلومات کو تھوڑا بہتر بنائیں۔

ہم نے اب تک کیا کیا ہے:

  • منصوبے میں شامل کیا گیا سونار- سکینر؛
  • قائم کریں جینے کوریج کی معلومات پیدا کرنے کے لیے؛
  • تشکیل شدہ سونار- سکینر؛
  • حمایت کا مسئلہ حل کیا .vueفائلیں + ٹائپ اسکرپٹ.

ٹیسٹ کوریج کے علاوہ، کوڈ کے معیار کے لیے دیگر دلچسپ مفید معیارات ہیں، مثال کے طور پر، کوڈ کی نقل اور پراجیکٹ کی لائنوں کی تعداد (کوڈ کی پیچیدگی سے متعلق گتانک کے حساب میں شامل)۔

کے ساتھ کام کرنے کے لیے پلگ ان کے موجودہ نفاذ میں TS (سونار ٹی ایس) کام نہیں کرے گا CPD (کاپی پیسٹ ڈیٹیکٹر) اور کوڈ کی لائنوں کی گنتی .vue-فائلوں.

کوڈ ڈپلیکیشن کی مصنوعی صورت حال پیدا کرنے کے لیے، صرف اجزاء کی فائل کو مختلف نام سے ڈپلیکیٹ کریں اور اسے کوڈ میں بھی شامل کریں۔ main.ts ایک ڈمی فنکشن اور اسے مختلف نام سے ڈپلیکیٹ کریں۔ نقل کی جانچ کرنے کے لیے جیسا کہ اندر ہے۔ .vue، اور میں .ts -فائلوں.

main.ts:

...
function name(params:string): void {
  console.log(params);
}
...

ایسا کرنے کے لیے، آپ کو کنفیگریشن لائن پر عارضی طور پر تبصرہ کرنا ہوگا:

sonar-project.properties:

...
sonar.exclusions=src/main.ts
...

آئیے جانچ کے ساتھ ساتھ اسکینر کو دوبارہ شروع کریں:

yarn test && yarn run sonar

یقیناً ہماری کوریج گر ​​جائے گی لیکن اب ہمیں اس میں کوئی دلچسپی نہیں ہے۔

کوڈ کی ڈپلیکیٹ لائنوں کے لحاظ سے، ہم دیکھیں گے:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

چیک کرنے کے لیے ہم استعمال کریں گے۔ CPDافادیت - jscpd:

npx jscpd src

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

کوڈ کی لائنوں کے لیے:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

شاید یہ مستقبل کے پلگ ان ورژن میں حل ہوجائے گا۔ سونار جے ایس (ٹی ایس). میں نوٹ کرنا چاہوں گا کہ وہ آہستہ آہستہ ان دو پلگ انز کو ایک میں ضم کرنا شروع کر رہے ہیں۔ سونار جے ایس، جو میرے خیال میں درست ہے۔

اب میں کوریج کی معلومات کو بہتر بنانے کے آپشن پر غور کرنا چاہتا تھا۔

اب تک ہم پورے پروجیکٹ اور خاص طور پر فائلوں کے لیے ٹیسٹ کوریج کو فیصد کے لحاظ سے دیکھ سکتے ہیں۔ لیکن مقدار کے بارے میں معلومات کے ساتھ اس اشارے کو بڑھانا ممکن ہے۔ یونٹ- پروجیکٹ کے ساتھ ساتھ فائلوں کے تناظر میں ٹیسٹ۔

ایک لائبریری ہے جو کر سکتی ہے۔ جینےرپورٹ کو فارمیٹ میں تبدیل کریں۔ سونارA:
عام ٹیسٹ کے اعداد و شمار - https://docs.sonarqube.org/display/SONAR/Generic+Test+Data.

آئیے اس لائبریری کو اپنے پروجیکٹ میں انسٹال کریں:

yarn add jest-sonar-reporter

اور اسے کنفیگریشن میں شامل کریں۔ جینے:

package.json:

…
"testResultsProcessor": "jest-sonar-reporter"
…

اب ٹیسٹ چلائیں:

yarn test

جس کے بعد پروجیکٹ کے روٹ میں ایک فائل بن جائے گی۔ test-report.xml.

آئیے اسے کنفیگریشن میں استعمال کرتے ہیں۔ سونارA:

sonar-project.properties:

…
sonar.testExecutionReportPaths=test-report.xml
…

اور اسکینر کو دوبارہ شروع کریں:

yarn run sonar

آئیے دیکھتے ہیں کہ انٹرفیس میں کیا تبدیلی آئی ہے۔ سونارA:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

اور کچھ بھی نہیں بدلا۔ حقیقت یہ ہے کہ سونار جیسٹ رپورٹ میں بیان کردہ فائلوں کو فائل نہیں مانتا یونٹ-ٹیسٹس اس صورت حال کو درست کرنے کے لیے، ہم کنفیگریشن پیرامیٹر استعمال کرتے ہیں۔ سونار سونار ٹیسٹ، جس میں ہم واضح طور پر ٹیسٹ کے ساتھ فولڈرز کی نشاندہی کریں گے (ہمارے پاس ابھی صرف ایک ہے):

sonar-project.properties:

…
sonar.tests=src/components/__tests__
…

آئیے اسکینر کو دوبارہ شروع کریں:

yarn run sonar

آئیے دیکھتے ہیں کہ انٹرفیس میں کیا تبدیلی آئی ہے:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

اب ہم نے اپنی تعداد دیکھی ہے۔ یونٹٹیسٹ اور، اندر کلک کرکے ناکام ہونے کے بعد، ہم پروجیکٹ فائلوں میں اس نمبر کی تقسیم دیکھ سکتے ہیں:

VueJS+TS پروجیکٹ کو سونار کیوب کے ساتھ مربوط کرنا

حاصل يہ ہوا

لہذا، ہم نے مسلسل تجزیہ کرنے کے لئے ایک آلے کو دیکھا سونار کیوب. ہم نے کامیابی کے ساتھ اس میں لکھا ہوا ایک پروجیکٹ شامل کیا۔ VueJs+TS. کچھ مطابقت کے مسائل کو طے کیا۔ ہم نے ٹیسٹ کوریج اشارے کے معلوماتی مواد میں اضافہ کیا۔ اس مضمون میں، ہم نے کوڈ کے معیار کے لیے صرف ایک معیار کا جائزہ لیا (شاید اہم میں سے ایک)، لیکن سونار کیوب حفاظتی جانچ سمیت دیگر معیار کے معیار کی حمایت کرتا ہے۔ لیکن یہ تمام خصوصیات مکمل طور پر دستیاب نہیں ہیں۔ کمیونٹی- ورژن دلچسپ اور مفید خصوصیات میں سے ایک انضمام ہے۔ سونار کیوب مختلف کوڈ ریپوزٹری مینجمنٹ سسٹمز، جیسے GitLab اور BitBucket کے ساتھ۔ کو روکنے کے لئے ضم پل (ضم) کی درخواست'ایک ذخیرے کی مرکزی شاخ تک جب کوریج کم ہوتی ہے۔ لیکن یہ ایک بالکل مختلف مضمون کی کہانی ہے۔

PS: کوڈ کی شکل میں مضمون میں بیان کردہ ہر چیز دستیاب ہے۔ میرا کانٹا.

سروے میں صرف رجسٹرڈ صارفین ہی حصہ لے سکتے ہیں۔ سائن ان، برائے مہربانی.

کیا آپ سونار کیوب پلیٹ فارم استعمال کرتے ہیں:

  • 26,3٪ہاں 5

  • 15,8٪نمبر 3

  • 15,8٪میں نے اس پلیٹ فارم کے بارے میں سنا ہے اور 3 استعمال کرنا چاہتا ہوں۔

  • 10,5٪میں نے اس پلیٹ فارم کے بارے میں سنا ہے اور استعمال نہیں کرنا چاہتا 2

  • 0,0٪میں ایک مختلف پلیٹ فارم 0 استعمال کر رہا ہوں۔

  • 31,6٪پہلی بار میں نے اس کے بارے میں سنا ہے 6

19 صارفین نے ووٹ دیا۔ 3 صارفین غیر حاضر رہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں