የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

በስራችን ውስጥ መድረክን በንቃት እንጠቀማለን SonarQube የኮድ ጥራትን በከፍተኛ ደረጃ ለመጠበቅ. ከተፃፉት ፕሮጀክቶች ውስጥ አንዱን ሲያዋህዱ VueJs+Typescript, ችግሮች ተፈጠሩ. ስለዚህ, እንዴት እነሱን መፍታት እንደቻልን በበለጠ ዝርዝር ልነግርዎ እፈልጋለሁ.

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

በዚህ ጽሑፍ ውስጥ, ከላይ እንደጻፍኩት ስለ SonarQube መድረክ እንነጋገራለን. ትንሽ ፅንሰ-ሀሳብ - በአጠቃላይ ምን እንደሆነ ፣ ስለ እሱ ለመጀመሪያ ጊዜ ለሚሰሙት

SonarQube (የቀድሞ ርቀትና) ለቀጣይ ፍተሻ እና የኮድ ጥራት መለኪያ ክፍት ምንጭ መድረክ ነው።
በMISRA C፣ MISRA C++፣ MITER/CWE እና CERT Secure Codeing Standards የፕሮግራም አወጣጥ ደረጃዎች ህግጋት መሰረት የኮድ ትንተና እና ስህተት ፈልጎን ይደግፋል። እንዲሁም ስህተቶችን ከ OWASP Top 10 እና CWE/SANS Top 25 የፕሮግራሚንግ ስህተቶች ዝርዝሮች መለየት ይችላል።
ምንም እንኳን የመሳሪያ ስርዓቱ የተለያዩ የተዘጋጁ መሳሪያዎችን ቢጠቀምም, SonarQube ውጤቱን ወደ አንድ ዳሽቦርድ በመቀነስ, የሂደቶችን ታሪክ በመያዝ እና በእድገቱ ወቅት በሶፍትዌር ጥራት ላይ አጠቃላይ ለውጦችን እንዲመለከቱ ያስችልዎታል.

ተጨማሪ ዝርዝሮች በ ላይ ይገኛሉ ኦፊሴላዊ ድር ጣቢያ

ብዛት ያላቸው የፕሮግራም አወጣጥ ቋንቋዎች ይደገፋሉ። ከላይ ባለው ሊንክ ባለው መረጃ ስንገመግም እነዚህ ከ25 በላይ ቋንቋዎች ናቸው። አንድን የተወሰነ ቋንቋ ለመደገፍ ተገቢውን ፕለጊን መጫን አለቦት። የማህበረሰብ ስሪት አብሮ ለመስራት ተሰኪን ያካትታል ጃቫስክሪፕት (አይነቶችን ጨምሮ)፣ ምንም እንኳን ዊኪው በተቃራኒው ቢናገርም። ከኋላ ጃቫስክሪፕት ተሰኪ መልሶች ሶናርጄ.ኤስ፣ ለTypescript ሶናርቲኤስ በየደረጃው.

ኦፊሴላዊው ደንበኛ የሽፋን መረጃን ለመላክ ይጠቅማል sonarqube-ስካነር, ይህም ከ ቅንብሮች በመጠቀም ውቅረት-ፋይል, ይህን ውሂብ ወደ አገልጋዩ ይልካል SonarQube ለቀጣይ ማጠናከሪያ እና ውህደት.

ለ ጃቫስክሪፕት ናት npm መጠቅለያ. ስለዚህ, ደረጃ በደረጃ ትግበራ እንጀምር SonarQube в እይታ- ፕሮጀክት በመጠቀም የተየባ ጽሑፍ.

አገልጋዩን ለማሰማራት SonarQube እንጠቀምበት ዳክለር-መፃፊያ.

sonar.yaml:

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

አስጀምር ፦

docker-compose -f sonar.yml up

ከዚህ በኋላ SonarQube የሚገኘው በ፡ http://localhost:9001 .

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር
እስካሁን ምንም ፕሮጀክቶች የሉም እና ያ ፍትሃዊ ነው። ይህንን ሁኔታ እናስተካክላለን. ኦፊሴላዊውን ምሳሌ ፕሮጀክቱን ወሰድኩ VueJS+TS+Jest. ወደ ራሳችን እናጣምመው፡-

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

በመጀመሪያ ደንበኛውን መጫን አለብን SonarQubeተብሎ የሚጠራው። sonar-ስካነር፣ ለ ጥዋት መጠቅለያ አለ፡-

yarn add sonarqube-scanner

እና ወዲያውኑ ትዕዛዙን ያክሉ ስክሪፕቶች ከእሱ ጋር ለመስራት.

ጥቅል.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 - አድራሻ ርቀትና'A;
  • sonar.ፕሮጀክት ቁልፍ - በአገልጋዩ ላይ ልዩ የፕሮጀክት መለያ ርቀትና'A;
  • sonar.የፕሮጀክት ስም ፕሮጀክቱ ተለይቶ ስለሚታወቅ ስሙ በማንኛውም ጊዜ ሊለወጥ ይችላል የፕሮጀክት ቁልፍ;
  • sonar.ምንጮች - አቃፊ ከምንጮች ጋር ፣ ብዙውን ጊዜ ይህ srcነገር ግን ማንኛውም ሊሆን ይችላል. ይህ አቃፊ ከስር ፎልደር አንጻራዊ ተቀናብሯል, እሱም ስካነር ከተጀመረበት አቃፊ;
  • sonar.ፈተናዎች - ከቀዳሚው ጋር አብሮ የሚሄድ መለኪያ። ይህ ፈተናዎቹ የሚገኙበት አቃፊ ነው። በዚህ ፕሮጀክት ውስጥ እንደዚህ ያለ አቃፊ የለም ፣ እና ፈተናው በአቃፊው ውስጥ ከሚሞከረው አካል አጠገብ ይገኛል ።ሙከራ", ስለዚህ ለአሁኑ ችላ እንላለን እና ቀጣዩን መለኪያ እንጠቀማለን;
  • sonar.ፈተና.ማካተት - ጭምብልን በመጠቀም ለሙከራዎች መንገድ ፣ በነጠላ ሰረዝ የተዘረዘሩ ብዙ አካላት ሊኖሩ ይችላሉ ።
  • sonar.ምንጭ ኢንኮዲንግ - የምንጭ ፋይሎችን በኮድ ማድረግ.

ለስካነሩ የመጀመሪያ ጅምር ፣ ከዋናው ቀዳሚ እርምጃ በስተቀር ሁሉም ነገር ዝግጁ ነው-የፍተሻ ሞተሩን ራሱ ማስጀመር ፣ ስካነርው በኋላ ስለሚጠቀምበት ሽፋን መረጃ ማመንጨት ይችላል።

ግን ይህንን ለማድረግ ይህንን መረጃ ለማመንጨት የሙከራ ሞተሩን ማዋቀር ያስፈልግዎታል። በዚህ ፕሮጀክት ውስጥ የሙከራ ሞተር ነው የለም. እና ቅንብሮቹ በፋይሉ ተዛማጅ ክፍል ውስጥ ናቸው። package.json.

እነዚህን ቅንብሮች እንጨምር፡-

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

ማለትም፡ ሽፋንን እና ምንጩን (ከልዩነቶች ጋር) የሚመሰረትበትን መሰረት ለማስላት ባንዲራውን እራሱ እናስቀምጣለን።

አሁን ፈተናውን እናካሂድ፡-

yarn test

የሚከተለውን እንመለከታለን።

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

ምክንያቱ በራሱ አካል ውስጥ ምንም ኮድ የለም. ይህን እናስተካክል.

HelloWorld.vue፡

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

ይህ ሽፋንን ለማስላት በቂ ይሆናል.

ፈተናውን እንደገና ከጀመርን በኋላ ይህንን እናረጋግጣለን-

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

በስክሪኑ ላይ ስለ ሽፋኑ መረጃ ማየት አለብን, እና አቃፊ በፕሮጀክት አቃፊ ውስጥ ይፈጠራል ሽፋን ከሙከራ ሽፋን መረጃ ጋር ሁለንተናዊ ቅርጸት LCOV (LTP GCOV ቅጥያ).

ግኮቭ የኮድ ሽፋንን ለመመርመር በነጻ የሚሰራጭ መገልገያ ነው። Gcov በፕሮግራሙ ውስጥ ለእያንዳንዱ መግለጫ ትክክለኛውን የአፈፃፀም ብዛት ያመነጫል እና ማብራሪያዎችን ወደ ምንጭ ኮድ እንዲያክሉ ያስችልዎታል። Gcov እንደ የጂሲሲ ጥቅል አካል እንደ መደበኛ መገልገያ ይመጣል።
ሎኮቭ - ግራፊክ በይነገጽ ለ gcov. የ gcov ፋይሎችን ለብዙ ምንጭ ፋይሎች ይሰበስባል እና የኮድ እና የሽፋን መረጃ ያላቸው የኤችቲኤምኤል ገጾች ስብስብ ያዘጋጃል። አሰሳን ቀላል ለማድረግ ገጾች እንዲሁ ይፈጠራሉ። ሎኮቭ የሕብረቁምፊዎች፣ ተግባራት እና ቅርንጫፎች ሽፋን ይደግፋል።

ፈተናዎቹ ከተጠናቀቁ በኋላ የሽፋን መረጃ በ ውስጥ ይገኛል ሽፋን/lcov.info.
ማለት አለብን ርቀትና'ከየት ነው የማገኘው? ስለዚህ, የሚከተሉትን መስመሮች ወደ ውቅር ፋይሉ እንጨምር. ግን አንድ ነጥብ አለ: ፕሮጀክቶች ብዙ ቋንቋዎች ሊሆኑ ይችላሉ, ማለትም, በአቃፊው ውስጥ src ለብዙ የፕሮግራም ቋንቋዎች ምንጭ ኮዶች አሉ እና ከአንድ ወይም ከሌላ ጋር የተቆራኙ ናቸው ፣ እና በተራው ፣ የአንድ ወይም ሌላ ተሰኪ አጠቃቀም የሚወሰነው በቅጥያው ነው። እና ለተለያዩ የፕሮግራሚንግ ቋንቋዎች የሽፋን መረጃ በተለያዩ ቦታዎች ሊከማች ይችላል, ስለዚህ እያንዳንዱ ቋንቋ ይህንን ለማዘጋጀት የራሱ ክፍል አለው. የእኛ ፕሮጀክት ይጠቀማል የተየባ ጽሑፍ, ስለዚህ ለእሱ ብቻ የቅንጅቶች ክፍል እንፈልጋለን:

sonar-project.properties:

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

ለመጀመሪያው ስካነር ለመጀመር ሁሉም ነገር ዝግጁ ነው። ፕሮጀክቱ መሆኑን ልብ ማለት እፈልጋለሁ ርቀትናለመጀመሪያ ጊዜ ለተወሰነ ፕሮጀክት ስካነር ሲያሄዱ በራስ-ሰር ይፈጠራል። በቀጣዮቹ ጊዜያት የፕሮጀክት መለኪያዎችን በጊዜ ሂደት ለውጦችን ለማየት መረጃ ይከማቻል።

ስለዚህ ፣ ቀደም ሲል የተፈጠረውን ትዕዛዝ እንጠቀም package.json:

yarn run sonar 

ማስታወሻ: እንዲሁም መለኪያውን መጠቀም ይችላሉ -X ለበለጠ ዝርዝር ምዝግብ ማስታወሻ።

ስካነሩ ለመጀመሪያ ጊዜ ከተጀመረ የቃኚው ሁለትዮሽ ራሱ መጀመሪያ ይወርዳል። ከዚያ በኋላ ተጀምሮ አገልጋዩን መቃኘት ይጀምራል ርቀትና'a ለተጫኑ ተሰኪዎች፣ በዚህም የሚደገፍ ቋንቋን በማስላት። ለሥራው የተለያዩ መለኪያዎች እንዲሁ ተጭነዋል- የጥራት መገለጫዎች፣ ንቁ ደንቦች፣ የመለኪያዎች ማከማቻ፣ የአገልጋይ ደንቦች.

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

ማስታወሻ: በዚህ ጽሑፍ ማዕቀፍ ውስጥ በዝርዝር አንቀመጥባቸውም, ነገር ግን ሁልጊዜ ኦፊሴላዊ ምንጮችን ማግኘት ይችላሉ.

በመቀጠል የአቃፊው ትንተና ይጀምራል src ለሁሉም የምንጭ ፋይሎች መገኘት (አንድ የተወሰነ በግልጽ ካልተገለጸ) የሚደገፍ ቋንቋ፣ ከቀጣዩ መረጃ ጠቋሚ ጋር።

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

በመቀጠል ሌሎች የተለያዩ ትንታኔዎች ይመጣሉ፣ በዚህ ጽሁፍ ላይ ያላተኮርናቸው (ለምሳሌ እንደ ሽፋን፣ የኮድ ብዜት እና የመሳሰሉት)።

በቃኚው ሥራ መጨረሻ ላይ ሁሉም የተሰበሰቡ መረጃዎች ተሰብስቦ ተቀምጦ ወደ አገልጋዩ ይላካል።

ከዚህ በኋላ በድር በይነገጽ ውስጥ ምን እንደተፈጠረ አስቀድመን ማየት እንችላለን፡-

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

እንደምናየው, አንድ ነገር ሰርቷል, እና እንዲያውም አንድ ዓይነት ሽፋን ያሳያል, ግን ከእኛ ጋር አይመሳሰልም የለም- ሪፖርት.

እስቲ እንገምተው። ፕሮጀክቱን በበለጠ ዝርዝር እንመልከተው፣ የሽፋን ዋጋ ላይ ጠቅ ያድርጉ እና ወደ ዝርዝር የፋይል ሪፖርት “ውድቀት” ውስጥ እንገባለን።

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

እዚህ እናያለን, ከዋናው በተጨማሪ, የተመረመረ ፋይል HelloWorld.vue, ፋይልም አለ ዋና.ት, ይህም የሽፋኑን አጠቃላይ ገጽታ ያበላሸዋል. ግን እንዴት ከሽፋን ስሌት አገለልን። አዎ, ሁሉም ነገር ትክክል ነው, ግን ደረጃው ላይ ነበር የለምነገር ግን ስካነሩ ኢንዴክስ አቀረበለት፣ ስለዚህ በስሌቱ ውስጥ ተጠናቀቀ።

ይህንን እናስተካክል፡-

sonar-project.properties:

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

ማብራሪያ መስጠት እፈልጋለሁ: በዚህ ግቤት ውስጥ ከተገለጹት አቃፊዎች በተጨማሪ, በመለኪያው ውስጥ የተዘረዘሩት ሁሉም አቃፊዎች ተጨምረዋል. sonar.ፈተና.ማካተት.

ስካነሩን ካስጀመርን በኋላ ትክክለኛውን መረጃ እናያለን፡-

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

ቀጣዩን ነጥብ እንመልከት፡- የጥራት መገለጫዎች. ስለ ድጋፍ ከላይ ተናግሬያለሁ ርቀትናበተመሳሳይ ጊዜ ብዙ ቋንቋዎች። እያየን ያለነውም ይህንኑ ነው። ግን ፕሮጀክታችን የተፃፈ መሆኑን እናውቃለን TSለምንድነው ስካነርን አላስፈላጊ በሆኑ ማጭበርበሮች እና ቼኮች ያጥቡት። ወደ ማዋቀሩ ፋይል አንድ ተጨማሪ መለኪያ በመጨመር ቋንቋውን ለመተንተን እናዘጋጃለን ርቀትና‹ሀ፡

sonar-project.properties:

...
sonar.language=ts
...

ስካነሩን እንደገና እናሂድና ውጤቱን እንየው፡-

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

ሽፋኑ ሙሉ በሙሉ ጠፍቷል.

የስካነር መዝገብን ከተመለከትን የሚከተለውን መስመር ማየት እንችላለን፡-

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

ማለትም የፕሮጀክት ፋይሎቻችን በቀላሉ በመረጃ ጠቋሚ አልተቀመጡም።

ሁኔታው እንደሚከተለው ነው: በይፋ የተደገፈ VueJs ተሰኪው ውስጥ ነው። ሶናርጄ.ኤስተጠያቂው ማን ነው ጃቫስክሪፕት.

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

ግን ይህ ድጋፍ በተሰኪው ውስጥ የለም። ሶናርቲኤስ ለ TS, ስለ የትኛው ኦፊሴላዊ ትኬት በቡግ መከታተያ ውስጥ እንደተከፈተ ርቀትና‹ሀ፡

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

ይህንን እውነታ የሚያረጋግጡ ከSonarQube ገንቢዎች ተወካዮች ከአንዱ የተወሰኑ መልሶች እዚህ አሉ።

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

ነገር ግን ሁሉም ነገር ሰራልን ተቃወሙ። አዎ ነው፣ ትንሽ እንሞክር "ጠለፋ".
ድጋፍ ካለ .vue- ፋይሎች ርቀትና'ኦህ፣ እንግዲያውስ እንደ እነርሱ እንዲቆጥራቸው ልንነግረው እንሞክር የተየባ ጽሑፍ.

መለኪያ እንጨምር፡-

sonar-project.properties:

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

ስካነርን እናስጀምር፡-

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

እና, ቮይላ, ሁሉም ነገር ወደ መደበኛው ይመለሳል, እና በአንድ መገለጫ ብቻ ለ የተየባ ጽሑፍ. ማለትም ችግሩን በድጋፍ ለመፍታት ችለናል። VueJs+TS ለ SonarQube.

የበለጠ ለመሄድ እና የሽፋን መረጃን ትንሽ ለማሻሻል እንሞክር.

እስካሁን ያደረግነው፡-

  • ወደ ፕሮጀክቱ ተጨምሯል ርቀትና- ስካነር;
  • አዘገጃጀት የለም የሽፋን መረጃን ለማመንጨት;
  • ተዋቅሯል ርቀትና- ስካነር;
  • የድጋፍ ችግሩን ፈታ .vue- ፋይሎች + የተየባ ጽሑፍ.

ከሙከራ ሽፋን በተጨማሪ ለኮድ ጥራት ሌሎች ትኩረት የሚስቡ ጠቃሚ መመዘኛዎች አሉ ለምሳሌ የኮድ ማባዛት እና የመስመሮች ብዛት (ከኮድ ውስብስብነት ጋር በተያያዙ የቁጥሮች ስሌት ውስጥ የተካተቱ) የፕሮጀክቱ።

ጋር ለመስራት ተሰኪው አሁን ባለው ትግበራ TS (ሶናርቲኤስ) አይሰራም ሲፒዲ (ለጥፍ መፈለጊያ ቅዳ) እና የኮድ መስመሮችን መቁጠር .vue- ፋይሎች.

የኮድ ማባዛትን ሰው ሰራሽ በሆነ ሁኔታ ለመፍጠር በቀላሉ የመለዋወጫውን ፋይል በተለየ ስም ያባዙ እና እንዲሁም ወደ ኮዱ ያክሉት ዋና.ት አንድ dummy ተግባር እና በተለየ ስም ማባዛት. እንደ ውስጥ ብዜት ለመፈተሽ .vue, እና ውስጥ .ት - ፋይሎች.

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 የፕሮጀክት ውህደት ከSonarQube ጋር

ለማጣራት እንጠቀማለን ሲ.ዲ.ዲ.- መገልገያ - jscpd:

npx jscpd src

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

ለኮድ መስመሮች፡-

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

ምናልባት ይህ ወደፊት በተሰኪ ስሪቶች ውስጥ መፍትሄ ያገኛል SonarJS(ቲኤስ). እነዚህን ሁለት ፕለጊኖች ቀስ በቀስ ወደ አንድ ማዋሃድ መጀመራቸውን ማስተዋል እፈልጋለሁ ሶናርጄ.ኤስትክክል ይመስለኛል።

አሁን የሽፋን መረጃን የማሻሻል አማራጭን ግምት ውስጥ ማስገባት ፈለግሁ.

እስካሁን ድረስ ለጠቅላላው ፕሮጀክት እና በተለይም ለፋይሎች የሙከራ ሽፋንን በመቶኛ ደረጃ ማየት እንችላለን። ነገር ግን ስለ መጠኑ መረጃ ይህን አመላካች ማስፋፋት ይቻላል መለኪያ- ለፕሮጀክቱ ሙከራዎች, እንዲሁም በፋይሎች አውድ ውስጥ.

የሚችል ቤተ መጻሕፍት አለ። የለም- ሪፖርቱን ወደ ቅርጸት መለወጥ ርቀትና‹ሀ፡
አጠቃላይ የሙከራ ውሂብ - https://docs.sonarqube.org/display/SONAR/Generic+Test+Data.

ይህንን ቤተ-መጽሐፍት በፕሮጀክታችን ውስጥ እንጭነው፡-

yarn add jest-sonar-reporter

እና ወደ ውቅር ያክሉት። የለም:

ጥቅል.json:

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

አሁን ፈተናውን እናካሂድ፡-

yarn test

ከዚያ በኋላ በፕሮጀክቱ ሥር ውስጥ አንድ ፋይል ይፈጠራል test-report.xml.

በቅንጅቱ ውስጥ እንጠቀምበት ርቀትና‹ሀ፡

sonar-project.properties:

…
sonar.testExecutionReportPaths=test-report.xml
…

እና ስካነሩን እንደገና ያስጀምሩ:

yarn run sonar

በይነገጹ ውስጥ ምን እንደተለወጠ እንመልከት ርቀትና‹ሀ፡

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

እና ምንም አልተለወጠም. እውነታው ግን ሶናር በጄስት ዘገባ ውስጥ የተገለጹትን ፋይሎች እንደ ፋይሎች አይቆጥራቸውም መለኪያ- ሙከራዎች. ይህንን ሁኔታ ለማስተካከል የውቅረት መለኪያውን እንጠቀማለን ርቀትና sonar.ፈተናዎችማህደሮችን በሙከራዎች በግልፅ የምንጠቁምበት (ለአሁኑ አንድ ብቻ ነው ያለን)

sonar-project.properties:

…
sonar.tests=src/components/__tests__
…

ስካነርን እንደገና እንጀምር፡-

yarn run sonar

በይነገጹ ውስጥ ምን እንደተለወጠ እንመልከት፡-

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

አሁን የኛን ቁጥር አይተናል መለኪያ- ሙከራዎች እና፣ ወደ ውስጥ ጠቅ በማድረግ ካልተሳካ፣ የዚህን ቁጥር ስርጭት በፕሮጀክት ፋይሎች መካከል ማየት እንችላለን፡-

የVueJS+TS የፕሮጀክት ውህደት ከSonarQube ጋር

መደምደሚያ

ስለዚህ, ለቀጣይ ትንተና መሳሪያን ተመልክተናል SonarQube. በውስጡ የተጻፈውን ፕሮጀክት በተሳካ ሁኔታ አዋህደነዋል VueJs+TS. አንዳንድ የተኳኋኝነት ችግሮች ተስተካክለዋል። የሙከራ ሽፋን አመልካች የመረጃ ይዘትን ጨምረናል። በዚህ ጽሑፍ ውስጥ ለኮድ ጥራት (ምናልባትም ከዋና ዋናዎቹ አንዱ) አንዱን መስፈርት ብቻ መርምረናል SonarQube የደህንነት ሙከራን ጨምሮ ሌሎች የጥራት መስፈርቶችን ይደግፋል። ግን እነዚህ ሁሉ ባህሪዎች ሙሉ በሙሉ በ ውስጥ አይገኙም። ኅብረተሰብ- ስሪቶች. ከሚያስደስት እና ጠቃሚ ባህሪያት አንዱ ውህደት ነው SonarQube እንደ GitLab እና BitBucket ባሉ የተለያዩ የኮድ ማከማቻ አስተዳደር ስርዓቶች። ለመከላከል የውህደት መጎተት(ማዋሃድ) ጥያቄሽፋኑ ሲበላሽ ወደ ማከማቻው ዋና ቅርንጫፍ። ግን ይህ ፍጹም የተለየ ጽሑፍ ታሪክ ነው።

PS: በኮድ መልክ በአንቀጹ ውስጥ የተገለፀው ሁሉም ነገር በ ውስጥ ይገኛል። የእኔ ሹካ.

በዳሰሳ ጥናቱ ውስጥ የተመዘገቡ ተጠቃሚዎች ብቻ መሳተፍ ይችላሉ። ስግን እንእባክህን።

የ SonarQube መድረክን ትጠቀማለህ፦

  • 26,3%አዎ 5

  • 15,8%No3

  • 15,8%ስለዚህ መድረክ ሰምቻለሁ እና መጠቀም እፈልጋለሁ3

  • 10,5%ስለዚህ መድረክ ሰምቻለሁ እና መጠቀም አልፈልግም2

  • 0,0%እኔ የተለየ መድረክ እየተጠቀምኩ ነው0

  • 31,6%ሾለ እሷ ለመጀመሪያ ጊዜ ሰማሁ 6

19 ተጠቃሚዎች ድምጽ ሰጥተዋል። 3 ተጠቃሚዎች ድምፀ ተአቅቦ አድርገዋል።

ምንጭ: hab.com

አስተያየት ያክሉ