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의 코드입니다 이름
위 예의 경우,
문제를 식별하는 규칙은 어떻게 정의합니까?
동일한 코드 집합으로 중복 기능을 어떻게 찾을 수 있습니까? 다른 기능 이름이 있습니까? 중복 기능을 줄이는 데 도움이됩니다.
JavaScript 코드와 다른 점은 무엇입니까? –
@ Pierre-Yves-SonarSourceTeam 그것은 Sahi 스크립트이며 JS가 아닙니다. 밑줄로 표시되는 내용은 내장 된 sahi API입니다. 기본적으로 아래의 sahi 스크립트 파일에서 확인하고 싶습니다. 얼마나 많은 함수가 정의되어 있습니까? 복용하는 주장의 수는 얼마입니까? 톱니 모양? 중복 된 코드 줄? try ... catch가 적절한 예외를 가지고 있는지 여부 루프가 _exists 대신 _isVisible API를 가져야한다면? – sridattas
Java 및 JavaScript에서 코드 복제본을 찾는 방법은 다음 Q/A를 참조하십시오. http://stackoverflow.com/q/40799220/120163 –