2016-11-15 1 views
0

Sahi 자동화 도구를 SonarQube에 성공적으로 통합하여 결과를 얻을 수는 있지만 문제는 sahi 스크립트와 관련된 문제를보고하고 중복 기능을 찾기 위해 규칙 집합을 정의하는 것입니다. sample1.sah문제를 식별하는 규칙을 정의하는 방법/수중 음파 탐지기에서 sahi 스크립트의 함수를 복제하는 방법? 그것은 분석을 위해서만 자바 스크립트 또는 자바 구문을 지원합니까?

function eno_selectFromCombo($Field_Name, $Value) //Function name 
{ 
    if($Value!="") 
    { 
     _setStrictVisibilityCheck(true); 
     if(_exists(_select($Field_Name))) 
     { 
      _assertEqual(false, _select($Field_Name).disabled) 
      _setSelected(_select($Field_Name),$Value); 
     } 
     else 
     { 
      onScriptError($Field_Name + " doesn't exist ") 
     } 
     _setStrictVisibilityCheck(false); 
    } 
    else 
    { 
     _log($Field_Name + " is set with default value") 
    } 
} 

는 파일 이름 : 코드의 sample2.sah

function eno_selectCombo($Field_Name, $Value) //Different function name but same set of code 
    { 
     if($Value!="") 
     { 
      _setStrictVisibilityCheck(true); 
      if(_exists(_select($Field_Name))) 
      { 
       _assertEqual(false, _select($Field_Name).disabled) 
       _setSelected(_select($Field_Name),$Value); 
      } 
      else 
      { 
       onScriptError($Field_Name + " doesn't exist ") 
      } 
      _setStrictVisibilityCheck(false); 
     } 
     else 
     { 
      _log($Field_Name + " is set with default value") 
     } 
    } 

같은 세트 다른과 만 복사 여기

파일 이름이 Sahi의 코드입니다 이름

위 예의 경우,

  • 문제를 식별하는 규칙은 어떻게 정의합니까?

    동일한 코드 집합으로 중복 기능을 어떻게 찾을 수 있습니까? 다른 기능 이름이 있습니까? 중복 기능을 줄이는 데 도움이됩니다.

+0

JavaScript 코드와 다른 점은 무엇입니까? –

+0

@ Pierre-Yves-SonarSourceTeam 그것은 Sahi 스크립트이며 JS가 아닙니다. 밑줄로 표시되는 내용은 내장 된 sahi API입니다. 기본적으로 아래의 sahi 스크립트 파일에서 확인하고 싶습니다. 얼마나 많은 함수가 정의되어 있습니까? 복용하는 주장의 수는 얼마입니까? 톱니 모양? 중복 된 코드 줄? try ... catch가 적절한 예외를 가지고 있는지 여부 루프가 _exists 대신 _isVisible API를 가져야한다면? – sridattas

+0

Java 및 JavaScript에서 코드 복제본을 찾는 방법은 다음 Q/A를 참조하십시오. http://stackoverflow.com/q/40799220/120163 –

답변

0

이러한 파일에는 외부 API에 대한 참조가 있어도 표준 JavaScript 구문이 사용 된 것 같습니다. SonarQube JavaScript 플러그인으로 이러한 파일을 분석 할 수 있어야합니다. 파일 이름이 "sah"로 끝나면 sonar-project.properties에 다음 줄이 있어야합니다.

sonar.javascript.file.suffixes=.js,.sah 
+0

의견을 보내 주시면 감사하겠습니다. 그러나 몇 가지 새로운 규칙을 정의하고 규칙을 숨기거나 삭제하려고합니다. 가능한가? – sridattas

+0

[JavaScript 플러그인 맨 위에 맞춤 규칙 쓰기] (http://docs.sonarqube.org/display/PLUG/Custom+Rules+for+JavaScript). [품질 프로필] (http://docs.sonarqube.org/display/SONAR/Quality+Profiles)에서 기존 규칙을 비활성화 할 수 있습니다. –

관련 문제