2012-04-18 2 views
1

여기 아무나 gradle 1.0-mileestone-9로 reportng을 성공적으로 구성 했습니까?Selenium, TestNG 및 ReportNG (Gradle 포함)

Gradle (https://github.com/iainrose/page-objects)으로 개발 된 Selenium 2 TestNG 샘플을 다운로드했습니다. 그것은 (브라우저를 전환하기위한 build.gradle에 System Properties를 추가 한 후) 훌륭하게 작동하고 이제 ReportNG를 믹스에 추가하고 싶습니다. 그러나, 아직 후속 없었다 것,

Could not resolve all dependencies for configuration ':compile'. 
> Artifact 'org.testng:testng:6.3.1:[email protected]' not found. 

내가 http://issues.gradle.org/browse/GRADLE-2042에서 비슷한 문제를 발견하고 거기에 코멘트를 추가 :

dependencies { 
compile "org.seleniumhq.selenium:selenium-java:2.15.0" 
compile "org.testng:testng:6.3.1" 
compile "org.uncommons:reportng:1.1.2" 
} 

그것은 다음과 같은 오류가 발생합니다 : 나는 다음 시도했다. 의존성에서 reportng을 제거하는 것이 유일한 제안은 ... 여기 누군가가 gradng을 사용하여 reportng을 얻는 방법을 알고 있기를 바랍니다. 여전히 reportng 청취자하지 않고 있지만, 장소에 의존와 - 코드가 Szpak에 의해 제안 드디어 테스트를 실행할 수 build.gradle을 추가 한 후

아래 Szpak에 의해 제안 코드를 추가 한 후

. 그러나, 일단 내가 같이 청취자 연결 :

useTestNG() { options { listeners << 'org.uncommons.reportng.HTMLReporter' listeners << 'org.uncommons.reportng.JUnitXMLReporter' } 

내가 java.lang.StackOverflowError의 가지고 : 뭔가 종속성 문제처럼 내 연구에서

A problem occurred evaluating root project 'console-bg1'. 
> java.lang.StackOverflowError (no error message) 

* Exception is: 
org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'console-bg1'. 
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:54) 

(...) 

Caused by: java.lang.StackOverflowError 
at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:804) 
at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1096) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049) 
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:128) 
at org.gradle.api.tasks.testing.testng.TestNGOptions.methodMissing(TestNGOptions.groovy:204) 

은 온라인으로 보인다. 그라디언트로 reportng을 사용할 수 없습니다.

답변

0

해결 방법으로 testng-5.0-jdk15 전이 의존성을 reportng 패키지에서 제외 할 수 있습니다.

dependencies { 
    compile "org.seleniumhq.selenium:selenium-java:2.15.0" 
    compile "org.testng:testng:6.3.1" 
    compile("org.uncommons:reportng:1.1.2") { 
     exclude group: "org.testng", module: "testng" 
    } 
    compile "com.google.inject:guice:3.0" 
} 

Btw, 일반적으로 testCompile이 테스트 종속성에 더 적합합니다.

업데이트 : "ClassNotFoundException : com.google.inject.Module"을 피하기 위해 guice 종속성을 추가했습니다.

+0

이것은, 컴파일 오류가 많이 발생 셀레늄이나 TestNG를 어느 패키지가 더 이상 ... – Lidia

+0

확인을 발견 이후, 난 그 뒤로을 - 모든 컴파일 오류를 던지기 시작한 것은 compile에서 testCompile로 변경되었습니다. 일단 내가 다시 컴파일하기를 원한다면, 코드는 정상적으로 작동합니다 - 나는 더 이상 두려워하지 않는 'Artifact not found error'를 얻지 않습니다. 테스트가 실행되었습니다. 고맙습니다! – Lidia

+0

reportng 리스너를 추가 한 후 java.lang.StackOverflowError 예외로 인해 빌드가 실패합니다. 내 검색에서 이것은 의존성과 관련이있는 것처럼 보입니다 (http://gradle.1045684.n5.nabble.com/StackOverflowError-in-idea-plugin-td3207809.html 참조). 나는 이것이 gradle이나 dependency declaration의 문제인지 아닌지를 판단 할 수 없다. 나는 원래 게시물에 예외의 일부가됩니다. – Lidia

0
여기

는 Szpak의 기여를 포함했다 코드입니다 :

dependencies { 
compile "org.seleniumhq.selenium:selenium-java:2.21.0" 
compile "org.testng:testng:6.3.1" 
compile group: 'com.google.inject', name: 'guice', version: '3.0' 
compile("org.uncommons:reportng:1.1.2") { 
    exclude group: "org.testng", module: "testng" 
    } 
} 
관련 문제