DEV Community

Ayo
Ayo

Posted on

TestSprite MCP Server ile React 18 + TypeScript Projesinde Otomatik Test Deneyimi

TestSprite MCP Server ile React 18 + TypeScript Projesinde Otomatik Test Deneyimi

Yazılım geliştirme süreçlerinde otomatik testlerin önemi tartışılmaz. Son dönemde popülerleşen TestSprite, özellikle MCP (Machine Control Protocol) üzerinden yapay zekâ destekli test üretimiyle dikkatimi çekti. Kendi React 18 + TypeScript projemde TestSprite MCP server’ı kullanarak yaşadığım deneyimi, karşılaştığım sonuçları ve özellikle Türkçe locale ile ilgili gözlemlerimi bu yazıda detaylıca paylaşmak istiyorum.

TestSprite Nedir?

TestSprite, modern frontend projeleri için AI tabanlı otomatik test senaryoları üreten ve MCP protokolü üzerinden çalışan bir test sunucusu. Temel amacı, yazdığınız kodu analiz ederek, eksik veya zayıf testleri tespit edip, önerilerde bulunmak ve hatta otomatik olarak test dosyaları oluşturmak. Özellikle büyük ölçekli projelerde, test kapsamını artırmak isteyen ekipler için oldukça cazip bir çözüm.

Kurulum ve Konfigürasyon Deneyimi

TestSprite’ı projeme entegre etmek için öncelikle MCP protokolünü destekleyen bir IDE eklentisi gerekiyor. Ben Cursor kullanıyorum, ancak VSCode için de benzer bir eklenti mevcut. Kurulum adımlarım şu şekildeydi:

  1. TestSprite MCP Server’ı indirmek:

    TestSprite’ın resmi sitesinden MCP server’ı indirip, testsprite-mcp-server klasörüne çıkardım.

  2. API Anahtarını Almak:

    Kayıt olduktan sonra, profilimden API anahtarımı aldım ve aşağıdaki gibi bir .env dosyasına ekledim:

   TESTSPRITE_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Enter fullscreen mode Exit fullscreen mode
  1. MCP Konfigürasyonu: Cursor’da settings.json dosyasına şu satırları ekledim:
   {
     "testsprite.mcpServer": "http://localhost:4000",
     "testsprite.apiKey": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
   }
Enter fullscreen mode Exit fullscreen mode

Ardından terminalde MCP server’ı başlattım:

   cd testsprite-mcp-server
   npm install
   npm start
Enter fullscreen mode Exit fullscreen mode

Kurulumun tamamlanması yaklaşık 10 dakika sürdü. Dokümantasyon yeterince açıklayıcıydı, ancak Türkçe kaynak eksikliği hissediliyor.

React 18 + TypeScript Projesinde Test Çalıştırma

Projemde src/components altında birkaç karmaşık form ve liste bileşeni vardı. TestSprite’ı başlattıktan sonra, Cursor üzerinden “Generate Tests” komutunu çalıştırdım. TestSprite, dosyaları analiz etti ve kısa sürede src/__tests__ klasöründe yeni test dosyaları oluşturdu.

Oluşturulan testler, çoğunlukla jest ve react-testing-library kullanılarak yazılmıştı. Kod kalitesi ve coverage açısından tatmin edici buldum. Testleri çalıştırmak için klasik npm test komutunu kullandım.

Test Sonuçları ve TestSprite Dashboard Ekranı

Test çalıştırma sonucunda toplam 18 test oluşturulmuştu. Bunlardan 16’sı geçti, 2’si başarısız oldu. Başarısız olan testler, özellikle edge-case’lerde (ör. boş input, beklenmeyen prop değerleri) hata verdi. Hata mesajları oldukça açıklayıcıydı:

FAIL src/__tests__/UserForm.test.tsx
  ✕ Kullanıcı adı boş bırakıldığında uyarı gösterilmeli (38 ms)
    Beklenen: "Lütfen kullanıcı adınızı girin"
    Alınan: undefined
Enter fullscreen mode Exit fullscreen mode

TestSprite’ın kendi dashboard ekranında ise şunları gözlemledim:

  • Sol panelde testlerin listesi, sağda ise detaylı loglar ve hata mesajları vardı.
  • Geçen testler yeşil, başarısız olanlar kırmızı ile işaretlenmişti.
  • Her testin çalıştırılma süresi ve son çalıştırılma tarihi (ör. 12.06.2024) net şekilde gösteriliyordu.
  • Dashboard’da ayrıca test coverage yüzdesi ve “AI önerileri” sekmesi de bulunuyordu.

Türkçe Locale Analizi

TestSprite’ın Türkçe locale desteğini özellikle merak ediyordum. İki önemli gözlemim oldu:

1. Pozitif: Türkçe Tarih Formatı Doğru Tanındı

Test açıklamalarında ve dashboard’da testlerin son çalıştırılma tarihi GG.AA.YYYY formatında gösterildi. Örneğin: 12.06.2024. Bu, özellikle ekip içinde raporlama ve hataların takibi açısından büyük kolaylık sağlıyor. Ayrıca, test açıklamalarında tarih geçen ifadeler de doğru şekilde ayrıştırıldı.

2. Negatif: Türkçe Karakterler ASCII’ye Dönüştürülüyor (Büyük Bir Eksiklik)

Test başlıklarında ve açıklamalarında kullandığım özel Türkçe karakterler (ı, ğ, ş, ç, ü, ö) maalesef ASCII’ye dönüştürüldü. Örneğin:

  • “ş” harfi “ss” olarak,
  • “ı” harfi “i” olarak,
  • “ç” harfi “c” olarak,

gösterildi. Yani “Kullanıcı adı boş bırakıldığında uyarı gösterilmeli” başlığı dashboard’da “Kullanici adi bos birakildiginda uyari gosterilmeli” şeklinde görünüyor. Bu durum, özellikle test raporlarını okuyan Türk geliştiriciler için kafa karıştırıcı ve profesyonellikten uzak bir izlenim bırakıyor. Ayrıca, kodda test açıklamaları Türkçe karakterle yazılsa bile, dashboard ve loglarda bu dönüşümün olması bir bug olarak değerlendirilmeli.

Genel Değerlendirme ve Tavsiye

TestSprite MCP server, React + TypeScript projelerinde hızlı ve etkili bir şekilde otomatik test üretmek isteyenler için güçlü bir araç. Kurulumu kolay, AI tabanlı öneriler ve coverage raporları oldukça işlevsel. Ancak, Türkçe locale desteği tam anlamıyla kusursuz değil. Tarih formatı düzgün çalışsa da, Türkçe karakterlerin ASCII’ye dönüştürülmesi ciddi bir eksiklik.

Eğer projenizde İngilizce kullanıyorsanız veya Türkçe karakterler kritik değilse, TestSprite’ı gönül rahatlığıyla tavsiye edebilirim. Ancak, Türkçe karakterlerin doğru şekilde desteklenmesini bekliyorsanız, bu konuda güncelleme gelene kadar dikkatli olmanızı öneririm.

Sonuç olarak, TestSprite otomatik test üretiminde zaman kazandırıyor ve coverage’ı artırıyor. Türkçe locale desteği ise geliştirilmeye açık. Özellikle büyük ekiplerde ve sürekli entegrasyon süreçlerinde test kalitesini artırmak için denenmeye değer bir araç.

Top comments (0)