Bun Nedir? Otomasyon Testi İçin Yeterlilik İncelemesi
Bu yazımızda, Javascript ekosistemindeki Bun aracını inceleyeceğiz. Eğer Bun aracını duyduysanız ya da merak ediyorsanız, beraber bu aracı deneyelim ve test koşumlarında yeterliliğine bakalım.
Günümüzde Twitter'ı kullanıyor veya teknoloji haberlerini takip ediyorsanız, "Bun" adında yeni bir aracı her yerde görebilirsiniz. Komik ismi ve simgesinin yanı sıra, bu araç, Javascript ekosistemindeki en heyecan verici gelişmelerden biridir. Bun benim de dikkatimi çekti ve denemeye karar verdim. Bu bültende, Bun'ın ne olduğunu ve yazılım testi ekosistemine ne sunduğunu beraber keşfedeceğiz.
Not: Yazılım test mesleğini öğrenmek isteyenler için, Yazılım Testi Yol Haritası isimli ücretsiz bir kurs yayınladım. Kursa aşağıdaki link ile üye olabilirsiniz:
https://www.udemy.com/course/test-muhendisligi-yol-haritasi/?referralCode=90FFBE5755699D68E553
Bun, modern JavaScript ekosistemi için tasarlanmış yeni bir JavaScript run-time ( çalışma aracı), hız, iyi API'ler ve bütüncül bir geliştirici deneyimi üzerine odaklanmıştır. Hızlı ve etkili bir Node.js alternatifi olması amacıyla inşa edilmiştir, JavaScript uygulamaları oluşturmak için tam bir araç seti sunar; bu araç seti bir paket yöneticisi, test çalıştırıcı ve bağlayıcı içerir.
Evet, Bun birçok araç sunuyor ve Node.js'in yerine geçebilme potansiyeline sahip. JS tabanlı otomatik testleri çalıştırdığımızda, Node.js ile veya Jest'i araçlarını kullanıyoruz. Bun, javascript tabanlı testlerimizi çalıştırmak için alternatif bir araç olabilir.
Gözlemlerime dayanarak, Bun test çalıştırıcısı şu anda birim testlerini çalıştırmak için kullanışlı. Eğer projenizi Bun'a (1.X.X stabil versiyon) taşımayı planlıyorsanız, birim testleriniz sorunsuz bir şekilde çalışacaktır. Ayrıca, Bun, windows cihazlar için henüz destek sağlamıyor. Bu yüzden, eğer bir Windows makinesi kullanıyorsanız, şu anda Bun kullanmanızı önermem.
Öyle Bun’ı beraber küçük bir proje ile test edelim. Bun ile çok temel bir birim testi çalıştırmak için adımlara bakalım:
(Bun sadece Mac cihazlarda çalıştığı için aşağıdaki adımlar sadece Mac için geçerlidir)
1- İlk olarak, basit bir proje oluşturun:
mkdir my-bun-project
cd my-bun-project
2- Bun'u globals'e ekleyin:
npm install -g bun
3- Bir test dosyası ekleyin
Sadece “tests” adında bir klasör oluşturabilir ve test dosyanızı bu klasörün altına ekleyebilirsiniz. Test dosyanızın dosya adında ya ".test", "test", ".spec" veya "spec" ifadelerinden birini içerdiğinden emin olun.
4- Testi çalıştırmak için şu komutu kullanabilirsiniz
“bun test"
Bu örnekte, 2+2'nin 4'e eşit olup olmadığını test eden çok temel bir birim testi yazdık. Bun test komutunu çalıştırdıktan sonra test sonucunu görebilirsiniz. Test 0.02ms içinde çalıştı ve geçti.
Bun üzerinden birim testlerini çalıştırmak oldukça basittir. Şu anda Bun ve diğer test çalıştırıcıları arasında bir karşılaştırma yapamam, ancak mevcut çalıştırıcılara göre iyi bir iyileştirme olduğuna dair birçok yorum gördüm. Bun'ı deneyerek siz de kendi karşılaştırmanızı yapabilirsiniz.
Peki Bun ile diğer otomasyon testlerini nasıl çalıştırabiliriz? Bu yazı için, Playwright ile yazdığım bir projeyi Bun ile çalıştırmayı denedim. Ancak projeyi çalıştırmam mümkün olmadı. Sorunlar ile ilgili araştırma yaparken aşağıdaki açık hataları gördüm:
https://github.com/oven-sh/bun/issues/2492
https://github.com/microsoft/playwright/issues/27139
Yani kısaca, Bun henüz playwright ile yazılan testleri desteklemiyor. Bu nedenle, projenizde Playwright ile yazılmış testler mevcutsa, ekibinizin Bun’a geçme talebini kibarca reddedin :). Bun ileriki bir tarihte elbette ki gelişerek farklı test frameworklerini destekleyecektir, ancak şu anki versiyonda, maalesef ki UI testlerimizi Bun runner ile koşmamız mümkün değil.
Biz yazılım testçileri için, yeni araçlar ve trendlerle güncel kalmak ve onları denemek önemlidir. Bu, hemen araçlarımızı değiştirmemiz gerektiği anlamına gelmez, ancak piyasadaki yeni seçeneklerden haberdar olmalı ve onlarlı denemek için küçük projeler yapmalıyız. Bun'un yakın gelecekte büyüme şansının iyi olduğuna ve giderek daha fazla projenin onu kullanılarak inşa edileceğine inanıyorum. Bun, şu anda, hala tam olarak Node.js uyumlu değil, bu yüzden Playwright, Node.js'e büyük ölçüde bağımlı olduğundan, mevcut testlerimizi Bun ile çalıştırmak mümkün değil. Ancak, yakın gelecekte bu sorunların çözüleceğine inanıyorum.
Sizin düşünceleriniz neler? Yeni çıkan test araçları ile denemeler gerçekleştiriyor musunuz? Kendi denemelerinizi yorumlarda paylaşabilirsiniz.
Bir sonraki yazıda görüşmek üzere