Appium Cucumber Framework'te "Hooks Class başlatılamadı" Hatası

  • Konuyu başlatan Dejuf
  • Başlangıç Tarihi
  • Mesaj 0
  • Görüntüleme 762
Katılım
23 Mart 2021
Mesajlar
2.933
Çözümler
28
Daha fazla  
Cinsiyet
Erkek
Selam,
Bir Bootcamp'i yeni bitirdim. Qa'lik eğitimi aldık, normalde bizim müfredatta yoktu ama öğrencilerden talep gelince önceki Batch'e verilen Appium derslerinin video kayıtlarını açtılar. Canlı ders olmadığı için hata aldığım zaman kendim araştırmaya koyuluyorum. Ki bu yazılımla uğraşan birisinde var olması gereken bir özellik zaten.
Neyse asıl konuya gelelim. Appium'da mobil test otomasyonu yapmak istiyorum. Feature dosyası, stepDefinition classı, page classları vs. her şey hazır ama testi çalıştırdığımda Hooks classı hata veriyor. Hatanın ekran görüntüsü:

a6a8f78b-aa29-4801-90ad-5b3cee3bdb16.png


Hooks classındaki hatayı gösterdiği satırı işaretledim:

304edc39-ce45-4f4a-9cef-dda894cf9593.png


buildDefaultService() methodunu bir türlü çalıştıramıyor. pom.xml dosyasının içeriği de bu:

Kod:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>

 <groupId>org.example</groupId>
 <artifactId>mobileTestingCucumber</artifactId>
 <version>1.0-SNAPSHOT</version>

 <properties>
 <maven.compiler.source>8</maven.compiler.source>
 <maven.compiler.target>8</maven.compiler.target>
 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 <jvm.options>--add-opens java.base/java.lang=ALL-UNNAMED</jvm.options>
 </properties>
 <dependencies>

 <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
 <dependency>
 <groupId>io.cucumber</groupId>
 <artifactId>cucumber-java</artifactId>
 <version>6.9.1</version>
 </dependency>

 <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
 <dependency>
 <groupId>io.cucumber</groupId>
 <artifactId>cucumber-junit</artifactId>
 <version>6.9.0</version>
 <scope>test</scope>
 </dependency>

 <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
 <dependency>
 <groupId>org.seleniumhq.selenium</groupId>
 <artifactId>selenium-java</artifactId>
 <version>3.141.59</version>
 </dependency>

 <!-- https://mvnrepository.com/artifact/io.appium/java-client -->
 <dependency>
 <groupId>io.appium</groupId>
 <artifactId>java-client</artifactId>
 <version>7.3.0</version>
 </dependency>
 </dependencies>

 <build>

 <plugins>

 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-failsafe-plugin</artifactId>
 <version>3.0.0-M1</version>
 <configuration>
 <testFailureIgnore>true</testFailureIgnore>
 <skipTests>false</skipTests>
 <includes>
 <include>**/runners/*TestRunner*.java</include>
 </includes>
 </configuration>
 </plugin>

 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-surefire-plugin</artifactId>
 <version>3.0.0-M1</version>
 <configuration>
 <parallel>classes</parallel>
 <forkMode>perthread</forkMode>
 <threadCount>4</threadCount>
 <reuseForks>false</reuseForks>
 <argLine>-Duser.language=en</argLine>
 <argLine>-Xmx1024m</argLine>
 <argLine>-XX:MaxPermSize=256m</argLine>
 <argLine>-Dfile.encoding=UTF-8</argLine>
 <useFile>false</useFile>
 <includes>
 <include>**/runners/*Runner*.java</include>
 </includes>
 <testFailureIgnore>true</testFailureIgnore>
 </configuration>
 </plugin>

 <plugin>
 <groupId>net.masterthought</groupId>
 <artifactId>maven-cucumber-reporting</artifactId>
 <version>5.0.0</version>
 <executions>
 <execution>
 <id>execution</id>
 <phase>verify</phase>
 <goals>
 <goal>generate</goal>
 </goals>
 <configuration>
 <projectName>cucumber-jvm-example</projectName>
 <outputDirectory>${project.build.directory}</outputDirectory>
 <inputDirectory>${project.build.directory}</inputDirectory>
 <jsonFiles>
 <param>**/json-reports/*.json</param>
 </jsonFiles><classificationFiles>->
 <param>sample.properties</param>
 <param>other.properties</param>
 </classificationFiles>
 </configuration>
 </execution>
 </executions>
 </plugin>

 </plugins>

 </build>

</project>

Bilgisayarımdaki JDK sürümü 11 ancak söz konusu proje 1.8 sürümünde açıldı.
Kaç gündür internetin altını üstüne getirdim ama çözüm bulamadım. TestNG'de bir sorun yok bu arada, orada her şey sorunsuz çalışıyor. Ama Cucumber'da şu hatayı bir türlü aşamadım. Yardımcı olabilir misiniz?

Aylar aylar sonra gelen ekleme:
Bu konuyu açtıktan birkaç gün sonra problemi çözdüm de burada paylaşmak bugüne kısmetmiş. Çözümü stackoverflow'da bulmuştum ama şu an çözümü bulduğum konuyu bulamadım dolayısıyla link veremiyorum. İleride aynı hata ile karşılaşan olursa diye çözümü de paylaşayım.

Öncelikle Node.js kurdum. Zaten framework'ü kurarken en baştan Node.js de kurmam gerekiyordu ama onu atlamışım. Sonrasında da pom.xml dosyasına şu dependency'i ekledim:

XML:
<dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-classic</artifactId>
   <version>1.2.3</version>
</dependency>

Bunu ekledikten sonra Hooks class ile Appium Server başladı ve problem çözülmüş oldu.
 
Son düzenleme:

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Geri
Yukarı