MENU

React Native (Expo) ile Maestro Testleri

React Native geliştiricileri için Expo, uygulama geliştirme sürecini önemli ölçüde kolaylaştıran bir araçtır. Expo projelerinizde Maestro testlerini çalıştırmanın iki temel yöntemini inceleyeceğiz.

February 3, 2025

Türkçe

React Native geliştiricileri için Expo, uygulama geliştirme sürecini önemli ölçüde kolaylaştıran bir araçtır. Büyük ölçüde React Native CLI ile benzerliklere sahip olsada, bazı işlemleri gerçekleştirirken farklılıklar bulunmaktadır. Bu makalede, Expo projelerinizde Maestro testlerini çalıştırmanın iki temel yöntemini inceleyeceğiz.

Eğer video ile öğrenmeyi tercih ediyorsanız bu konu hakkındaki videomu buradan izleyebilirsiniz. 👇

Expo ile Maestro testlerinizi çalıştırmanın iki farklı yolu vardır. Birincisi expo prebuild, ikincisi ise eas build. Bu yazıda ikisini de ele alacağız. İkisinde de arka planda gerçekleşen işlem biraz farklı fakat özetleyecek olursak; expo prebuild siz hala geliştirme aşamasındayken bile size iOS ve Android klasörlerini verirken, expo build ise uygulamanızı derler/inşa eder, bu yüzden de expo build kullanırken expo-dev-client’a ihtiyaç duyarız.

Ön Adımlar

Maestro testlerini çalıştırabilmek için Linux ya da macOS işletim sistemli bir bilgisayara ihtiyacınız var. Windows işletim sisteminde de WSL2 kullanarak testleri çalıştırabilirsiniz fakat bu yöntem bu yazının kapsamının dışında. Bu yazıda macOS işletim sisteminde Maestro testlerini çalıştırmayı baz alacağız, fakat Linux ile takip edenler için çok bir farklılık olmayacak.

Aşağıdakilerin bilgisayarımızda kurulu olduğundan emin olmalıyız.

  • Maestro CLI


  • EAS CLI

Proje Kurulumu

Testlerin Expo ile nasıl çalıştırılabileceğini göstermek için ufak bir proje yaptım. Eğer yazıyla birlikte takip etmek istiyorsanız starter branch, son halini görmek istiyorsanız main branch’ten devam edebilirsiniz. Aşağıdaki adımlar Maestro’yu kendi projenize entegre etmek istediğinizde de geçerlidir.

git clone -b

Projeyi bilgisayarınıza klonladıktan sonra, aşağıdaki komutla iOS ve Android için projeyi derleyebilirsiniz.

expo prebuild ile

Bu komut size Android ve iOS paket isminizin ne olmasını istediğinizi soracaktır, isterseniz varsayılan değerleri kullanabilirsiniz.

Proje derlendikten sonra iOS ya da Android emülatörünüzü çalıştırıp aşağıdaki komut ile uygulamayı kurup çalıştırabilirsiniz.

npm

Uygulama çalıştıktan sonra eas build kısmını es geçip direkt testleri çalıştırma kısmına geçebilirsiniz.

eas build ile

Expo hesabınıza giriş yapın.

Derleme ayarlarını yapıp, eas.json dosyası oluşturmak için aşağıdaki komutu çalıştırın.

Oluşan eas.json dosyanız aşağıdakine benzeyecektir.

{
 "cli": {
  "version": ">= 12.6.2",
  "appVersionSource": "remote"
 },
 "build": {
  "development": {
   "developmentClient": true,
   "distribution": "internal"
  },
  "preview": {
   "distribution": "internal"
  },
  "production": {
   "autoIncrement": true
  }
 },
 "submit": {
  "production": {}
 }
}

Şimdi ise expo-dev-client kurmamız lazım, eğer starter branch’ten takip ediyorsanız ya da kendi projenize ayarlamaya çalışıyorsanız bunu kurmalısınız.

Uygulamayı Derleme ve Kurma

Şimdi uygulamayı development profili ile iOS ya da Android için kurmalıyız. iOS için aşağıdaki komutu kullabilirsiniz.

Android için

Şimdi ise development client’i başka bir terminal penceresinde çalıştırmamız gerekiyor.

Uygulamayı iOS emülatöründe çalıştırmak için aşağıdaki adımları takip edin.

Derlenmiş uygulamayı aşağıdaki komut ile çıkartın.

Sonra uygulamayı emülatöre yükleyin.

Android için APK dosyasını emülatöre süreklemeniz yeterlidir.

Testleri Çalıştıralım

Şimdi test dosyamızı oluşturmamız lazım, .yaml uzantılı olduğu sürece ismi fark etmez. Ben genellikle .maestro klasörü içine koyuyorum. Bizim projemiz için çalışan örnek bir test dosyası aşağıda.

appId: com.kutaui.maestrotutorial
---
- launchApp
- tapOn: 'Email'
- inputText: 'test@gmail.com'
- tapOn: 'Password'
- inputText: 'password'
- tapOn:
    text: 'Login Button'
- assertVisible:
    text: 'Job Listings'
- tapOn:
    text: 'Software Engineer'
- assertVisible:
    text: 'Job Detail'

Expo development client çalıştığından emin olduğunuz zaman, aşağıdaki komut ile başka terminal de testlerinizi çalıştırabilirsiniz.

Bu makalede, Expo projelerinizde Maestro testlerini nasıl çalıştırabileceğinizi iki farklı yöntemle ele aldık: expo prebuild ve eas build. Her iki yöntem de kendi avantajlarına sahip olup, geliştirme sürecinize ve ihtiyaçlarınıza göre tercih edebilirsiniz.

  • expo prebuild: Bu yöntem, geliştirme aşamasında bile iOS ve Android klasörlerini oluşturarak, Maestro testlerinizi hızlı bir şekilde çalıştırmanıza olanak tanır. Bu, özellikle hızlı iterasyonlar yapmanız gerektiğinde oldukça kullanışlıdır.

  • eas build: Bu yöntem ise uygulamanızı derleyerek daha gerçekçi bir ortamda testlerinizi çalıştırmanızı sağlar. Bu yöntemde expo-dev-client kullanarak, geliştirme sürecinizde esneklik sağlayabilirsiniz.

Her iki yöntemde de Maestro testlerinizi başarıyla çalıştırabilir ve uygulamanızın kalitesini artırabilirsiniz. Eğer bu makaleyi takip ederek Maestro testlerinizi Expo projenize entegre ettiyseniz, tebrikler! Artık uygulamanızın kullanıcı arayüzü ve işlevselliği üzerinde daha güvenilir testler yapabilirsiniz.

Teşekkürler

Bu makaleyi okuduğunuz için teşekkür ederiz. Umarız bu rehber, geliştirme sürecinizde size yardımcı olmuştur. Herhangi bir sorunuz veya geri bildiriminiz varsa, lütfen bizimle paylaşmaktan çekinmeyin.

İyi kodlamalar! 🚀

React-Native

Maestro

Testing

Kutay Bekleriç

Front-End Developer

HQ

Maslak Mah. AOS 55. Sok.
B Blok Apt. No: 4 / 542
Sarıyer / İstanbul 34475

R&D

Üniversite Mah. Sarıgül Sok.
No: 37 / 1 İç Kapı No: 91
Avcılar / İstanbul 34320

© 2024 - All rights reserved

HQ

Maslak Mah. AOS 55. Sok.
B Blok Apt. No: 4 / 542
Sarıyer / İstanbul 34475

R&D

Üniversite Mah. Sarıgül Sok.
No: 37 / 1 İç Kapı No: 91
Avcılar / İstanbul 34320

© 2024 - All rights reserved

HQ

Maslak Mah. AOS 55. Sok. B Blok Apt. No: 4 / 542
Sarıyer / İstanbul 34475

R&D

Üniversite Mah. Sarıgül Sok. No: 37 / 1 İç Kapı No: 91 Avcılar / İstanbul 34320

© 2024 - All rights reserved