2017-11-27 16 views
0

<systemPropertyVariables> 사용자 유틸리티를 사용하여 실행해야하는 상황이있었습니다.사용자 정의 시스템 변수가 testng 모음으로 실행될 때 널 포인터 예외를 throw합니다.

<systemPropertyVariables> 
<environment>uat</environment>      
</systemPropertyVariables> 

이 내용은 내 pom.xml 파일에 정의되어 있습니다. 내 유틸리티 클래스 내부

나는 내가 그것을 잘 실행의 pom.xml을 통해 테스트 케이스를 실행하면

System.getProperty("environment"); 

이하로 사용하여이 값을 추출하고 있습니다. 하지만 testing.xml 파일이나 testng 테스트를 통해 실행하려고하면 nullpointerException이 발생합니다.

임시 솔루션으로 실행 구성에서 vmarguments를 정의했지만이 코드가 다시 분산되면이 구성은 실행 구성이 로컬 시스템으로 제한되어 있기 때문에 작동하지 않습니다.

누구든지이 오류를 해결하는 방법을 알려주십시오. Testng Suite를 개별적으로 실행할 때 SystemPropertyVariable을 정의해야합니다.

답변

0

매개 변수 태그를 사용하여 testNG에서이 값을 전달하면 테스트 클래스에서이 값을 검색 할 수 있습니다. 이것으로 당신은 maven과 testng 모두에서 이것을 실행할 수 있습니다.

+0

의미가 있지만 디버깅 목적으로 만 testng 실행이 필요했습니다. 그것이 첫 번째 해결책이었습니다. 그러나 매우 유용하지는 않았다. 스위트가 명령 행 인수에서 VM을 실행할 때. 이를 처리하기 위해 핵심 Java 코드를 작성했습니다. –

+0

스위트가 명령 행에서 트리거되는 경우에도 testng에 매개 변수가 있고 그에 따라 실행됩니다. 또는 maven의 매개 변수가 testng 매개 변수 – Jyothi

+0

yes를 사용하면 코드 검사에서이를 처리 할 수 ​​있습니다. 감사합니다 Jyothi –

0

안녕하세요, 프레임 워크를 설계하는 동안 다른 사람이 이런 유형의 문제에 봉착 한 경우이 솔루션을 찾았습니다.

간단한 자바 코드

try{ 
your code 
}catch(NullPointerException ee){ 
environment=""; 
e.printStackTrace(); 
}catch(Exception e){ 
Assert.assertTrue(fail); 
} 

당신이 (전공 시험의 일부를 실행하지 않은) 우리는 다른 예외를 얻을 때 실패 testng.xml를 통해 실행하는 경우에만 코드를 처리를 작성합니다.