2014-11-24 3 views
0

Я пытаюсь запустить свои аркиллианские тесты на лабораторных лабораториях. В нашем проекте мы используем build.gradle вместо Pom.xml. Я пытался следуя linkВыполнение теста arquillian (с использованием проекта gradle) на saucelabs

Так как мы не используем pom.xml, я пытался добавить эту зависимость в build.gradle

в build.gradle файла:

repositories { 
. 
. 
maven { url 'https://repository-saucelabs.forge.cloudbees.com/release' } 
} 

dependencies { 
. 
. 
// Libraries needed for Remote Weblogic Testing 
. 
. 
testRuntime "com.saucelabs:arquillian-sauce-drone:0.0.4" 
} 


**in arquillian.xml:** 
<extension qualifier="sauce-webdriver"> 
     <property name="userName">swxxxxxxx</property> 
     <property name="accessKey">63xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</property> 
     <property name="browser">firefox</property>  
     <property name="os">Windows 2008</property> 
     <property name="version">4.</property> 
</extension> 

Может кто-то пожалуйста, пролило некоторый свет здесь о том, как запустить arquillian тесты на sauclabs (проект Gradle)

java.lang.NoClassDefFoundError: org/jboss/arquillian/drone/webdriver/configuration/TypedWebDriverConfiguration 
at com.saucelabs.drone.webdriver.SauceWebDriverFactory.createConfiguration(SauceWebDriverFactory.java:55) 
at com.saucelabs.drone.webdriver.SauceWebDriverFactory.createConfiguration(SauceWebDriverFactory.java:33) 
at org.jboss.arquillian.drone.impl.DroneConfigurator.configureDrone(DroneConfigurator.java:172) 
at org.jboss.arquillian.drone.impl.DroneConfigurator.prepareDroneConfiguration(DroneConfigurator.java:122) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) 
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) 
at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:84) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 

Я получаю следующая ошибка.

+0

. Тогда это сработает. – Junaid

+0

@Junaid, спасибо. Я добавил «testRuntime» com.saucelabs: arquillian-sauce-drone: 0.0.4 "" для зависимостей. Это неправильно? –

+0

Ну, я использовал arquillian раньше с и без зависимостей maven. Но, для меня, arquillian всегда работает с зависимостями maven. Это глупо, но я не могу понять другого выхода. И вот ссылка http://stackoverflow.com/questions/13001371/adding-all-maven-dependencies-to-arquillian – Junaid

ответ

0

Это может быть проблема с транзитивной зависимостью. Если вы посмотрите на arquillian-sauce-drone-0.0.4.pom проект зависит от

<dependency> 
    <groupId>org.jboss.arquillian.extension</groupId> 
    <artifactId>arquillian-drone-webdriver</artifactId> 
    <version>${version.arquillian.drone}</version> 
</dependency> 

Глядя на drone webdriver jar он содержит класс, который вы видите, не хватает за исключением. Это может быть только одна из необходимых зависимостей, которые могут отсутствовать. С этой целью вы можете попытаться найти переходное управление зависимостями с помощью gradle, чтобы убедиться, что он настроен/работает как ожидалось в вашем проекте.

На основании этого SO post вы можете добавить переходный атрибут для зависимости. Я мог бы быть вне базы, хотя, поскольку у меня нет опыта с любым из этих инструментов, кроме maven и sauce.

Отрывок из зависимостей Maven Добавить SO размещать

compile ('com.somepackage:LIBRARY_NAME:[email protected]'){ 
    transitive=true 
} 
+0

Спасибо. Работаю над этим. Позвольте вам, ребята, узнать, когда и как это работает. –