2014-10-20 2 views
2

grails run-app 명령을 사용하여 일반적으로 디버깅/실행중인 프로젝트가 있습니다. 나는 테스트를하고 싶지만 특정 테스트를 위해서만 서버를 다시 실행하지 않아도된다.tomcat을 시작하지 않고 grails 기능 테스트를 실행하십시오.

저는 보통 백그라운드에서 디버그 모드로 서버를 실행합니다.

나는이 플러그인은 어쩌면 당신을 도와 grails test-app functional: className

답변

1

되는 최신의 시도와 함께, iteli-J에서 실행 구성으로 장난 시도했습니다.

Grails functional-test-development Plugin

이 플러그인은 이미 실행중인 응용 프로그램에 대한 테스트를 실행 촉진하여보다 편리 Grails에 대한 기능 테스트를 개발하게하는 것을 목표로하고있다. Grails 1.3.5에서 추가 된 개선 된 기능 테스트 지원을 사용하며 이전 버전에서는 작동하지 않습니다.

+0

누군가 grails 대화 형 콘솔을 실행하고 거기에서 디버그 모드로 플랫폼을 실행할 수 있습니까? –

2

Grails 2.4.4에서 baseUrl을 무시하면 localhost 이외의 서버에 대해 테스트를 실행할 수 있습니다. 예를 들어, AWS에 호스트 된 사전 제작 서버를 보유하고 있으며 연기 테스트와 같이 배치 후 젠킨스 (Jenkins)의 기능 테스트 하위 세트를 실행합니다.

grails -plain-output test-app -baseUrl=https://foo.bar.org/ -echoOut -echoErr functional: 

그래도 작동하지만 test-app은 여전히 ​​임베디드 tomcat 서버를 시작합니다. 그러나 약간의 파기로, 실행중인 인스턴스를 가리 키도록 서버 호스트를 겹쳐 쓰면 내장 된 Tomcat을 시작하지 않고 테스트가 실행됩니다. 또한 작업을해야하는 특정 환경에 Config.groovy 파일의 값을 무시

grails -plain-output test-app -Dgrails.server.host=foo.bar.org -baseUrl=https://foo.bar.org/ -echoOut -echoErr functional: 

또는 :

명령 행에 값을 전달 :이 작업을 수행하는 방법이 몇 가지 있습니다

... 
preProd { 
    ... 
    grails.server.host = 'foo.bar.org' 
    ... 
} 
... 

test-app에는 문서화되어 있지 않지만 run-app에 언급되어 있으며 테스트 앱에서도 작동합니다.

Grails는 서버 호스트/포트에 대한 연결을 열어서 임베디드 서버를 시작해야하는지 여부를 결정하고 성공적으로 시작을 건너 뛰기 때문에 작동합니다.

시행 착오에서 기본 URL이 중복 정보가 되더라도 grails.server.host-baseUrl을 모두 지정할 때 가장 좋은 결과를 얻었습니다. 아마도 내 경우에는 SSL 연결이 포함되어 있기 때문에 가능하지만 -baseUrl=... 대신 -https으로 실행 해봤는데 테스트가 중단 된 것 같습니다.

관련 문제