2017-01-17 5 views
0

저는 게이지 테스팅 도구에 대해 어느 정도 익숙하며 현재 젠킨스에서 실행하려고합니다.게이지와 젠킨스를 통합하는 방법

우선 : "Windows 일괄 처리 명령 실행"필드에 gauge --version을 설정하십시오.

Started by user anonymous 
Building in workspace C:\jenkins\workspace\Run_Gauge_Test 
[Run_Gauge_Test] $ cmd /c call C:\WINDOWS\TEMP\hudson8329964667758110371.bat 

C:\jenkins\workspace\Run_Gauge_Test>gauge --version 
Gauge version: 0.6.2 

Plugins 
------- 
No plugins found 
Plugins can be installed with `gauge --install {plugin-name}` 

C:\jenkins\workspace\Run_Gauge_Test>exit 0 
Finished: SUCCESS 

내가 명령 줄에서 직접 게이지를 실행하면 내가 얻을 출력이 비교 : 이것은 출력했다

C:\jenkins\workspace\Run_Gauge_Test>gauge --version 
Gauge version: 0.6.2 

Plugins 
------- 
html-report (2.1.1) 
java (0.5.1) 
xml-report (0.1.3) 

그래서 내가 배치 파일에서 같은 명령을 넣어 만에 달렸다 "no plugins found"메시지를 다시 받으십시오. 마지막 옵션으로 Use custom workspace을 틱하고 명령 줄에서 게이지 테스트를 실행하지만 여전히 "플러그인이 없습니다"라는 폴더에 내 디렉토리를 설정합니다.

그런 다음 쉘 명령으로 실행 해 보았습니다. 출력 :

물론
Started by user anonymous 
Building in workspace C:\jenkins\workspace\Run_Gauge_Test 
[Run_Gauge_Test] $ sh -xe C:\WINDOWS\TEMP\hudson211231385407124893.sh 
The system cannot find the file specified 
FATAL: command execution failed 
java.io.IOException: Cannot run program "sh" (in directory "C:\jenkins\workspace\Run_Gauge_Test"): CreateProcess error=2, The system cannot find the file specified 
    at java.lang.ProcessBuilder.start(Unknown Source) 
    (truncated) 
    at hudson.model.Executor.run(Executor.java:404) 
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified 
    at java.lang.ProcessImpl.create(Native Method) 
    at java.lang.ProcessImpl.<init>(Unknown Source) 
    at java.lang.ProcessImpl.start(Unknown Source) 
    ... 16 more 
Build step 'Execute shell' marked build as failure 
Finished: FAILURE 

, 실제로 (그리고 일을 나던)보다는 버전을 얻을 게이지 테스트를 실행하기 위하여려고하고있다; 하지만 왜 플러그인 정보를 올바르게 얻지 못하는지 문제를 해결하는 것이 더 간단 할 것이라고 생각했습니다. 실마리가 있습니까?

+0

Same 사용자 계정을 사용하여 Jenkins와 CI를 통해 수동으로 명령을 실행했는지 확인할 수 있습니까? – apoorvam

+0

안녕하세요 @apoorvam 젠킨스로 시작 했으므로 이해가 잘 모르겠습니다.jenkins 사용자 계정 또는 Windows 사용자 계정을 의미합니까? 내가 젠킨스에 대한 관리자 acc를 만들었지 만, 어떤 이유로 그것이 패스워드를 받아들이지 않을 것이다. 따라서 여기에 설명 된대로 보안을 비활성화했습니다. https://wiki.jenkins-ci.org/display/JENKINS/Disable+security. 이것이 문제의 원인이라고 생각하십니까? 또는 어딘가에 내 Windows acc 자격 증명을 지정해야합니까? 나는 d admin acc를 다시 만들어서 시도 할 것이다. – DPD

+1

젠킨스 에이전트가 명령을 실행하는 사용자/관리자 계정을 통해 게이지 플러그인을 설치해야합니다. GoCD 및 기타 CI 도구와의 통합에 대해서는 http://getgauge.io/documentation/user/current/advanced_readings/ci_integration/go.html을 참조하십시오. – apoorvam

답변

2

젠킨스 에이전트가 명령을 실행하는 사용자/관리자 계정을 통해 게이지 플러그인을 설치해야합니다. GoCD 및 기타 CI 도구와의 통합에 대한 자세한 내용은 다음 문서를 참조하십시오. http://getgauge.io/documentation/user/current/advanced_readings/ci_integration/go.html

긴 대답은 :

현재, 게이지 실행 파일은 시스템 수준에서 설치됩니다. 반면 게이지 플러그인 (언어 러너,보고 플러그인 등)은 사용자 수준에서 설치됩니다. 따라서 한 사용자로 수동으로 플러그인을 설치하고 다른 사용자가 작업을 실행하는 경우 CI에 설치하면 gauge은 플러그인을 찾을 수 없습니다.

이 문제를 해결하려면 CI가 실행되는 계정에서 플러그인 설치 명령을 실행해야합니다. 또는 Srikanth의 의견에 따르면 파이프 라인에서 gauge --install-all 작업을 수행 할 수 있습니다. 이렇게하면 필요한 모든 플러그인이 즉시 설치됩니다.

1

다른 사용자로 게이지를 설치하고 사용하는 것으로 판단됩니다. 많은 CI 도구와 마찬가지로 종종 작업이 에이전트에 로그인하는 데 사용되는 사용자와 다른 사용자로 실행됩니다.

현재 게이지 작동 방식은 다음과 같습니다. gauge.exe은 시스템 수준에서 사용할 수 있습니다. 그러나 플러그인은 사용자 수준에서 설치됩니다. 당신이 user1로 로그인 gauge --install java을 할 경우

그래서, gauge --version 당신이 user1로 로그인 한 경우에만 플러그인으로 java을 나열합니다.

로컬 시스템 계정으로 CI 에이전트를 실행하는 경우에도 마찬가지입니다.

이 문제를 해결할 수있는 방법 중 하나는 파이프 라인에 작업으로 설정을 포함하는 경우입니다. 즉, 사양을 실행하기 전에 프로젝트 루트에서 gauge --install-all을 가져야합니다.

+0

감사합니다. 그것은 제가 왜 예상 된 결과물을 얻지 못하는지 이해하는 것을 도왔습니다. – DPD