# Test Runner (Test çalıştırıcı)

Adres: https://softwaredictionary.org/tr/terimler/test-runner
Kategori: Test ve Kalite
Son güncelleme: 2026-09-30
Okunuşu: test ranır

Kısaca: Test runner, bir projenin otomatik testlerini genellikle tek komutla bulan, çalıştıran ve hangilerinin geçtiğini ya da başarısız olduğunu raporlayan araçtır.

## Test runner nedir?

Test runner, otomatik testlerinizi gerçekten çalıştıran programdır. Onu `npm test`, `pytest` ya da `go test` gibi tek bir komutla başlatırsınız; testleri bulur, çalıştırır ve neyin geçtiğine ve neyin başarısız olduğuna dair bir özet yazdırır. Herhangi bir test başarısız olduğunda sıfırdan farklı bir çıkış koduyla (exit code) çıkar; bir CI/CD hattı bozuk bir değişikliği bu sayede durdurması gerektiğini bilir.

Bir runner önce testleri genellikle `*.test.js` ya da `test_*.py` gibi dosya adı kalıplarıyla veya koddaki ek açıklamalarla (annotation) keşfeder. Ardından fixture'ları kurar, her testi çoğu zaman birkaç işçi süreç üzerinden paralel olarak çalıştırır, çıktıyı ve zamanlamayı yakalar ve bir rapor üretir: bir konsol özeti ya da CI sistemlerinin gösterebileceği JUnit XML gibi makine tarafından okunabilir bir dosya. Yararlı özellikler arasında dosyalar değiştiğinde testleri yeniden çalıştıran izleme modu (watch mode), ada ya da etikete göre filtreleme, yalnızca başarısız testleri yeniden çalıştırma, takılan testler için zaman aşımları ve birbirine bağımlı testleri ortaya çıkarmak için test sırasını karıştırma bulunur.

Test runner, bir turnuvadaki hakem ve skor tabelası gibidir: maçları kendisi oynamaz, ama her birinin kurallara göre oynanmasını sağlar ve sonuçları kaydeder. Her büyük dil ekosisteminin en az bir tanesi vardır ve bazıları Node.js'teki `node --test`, Go'daki `go test` ve Rust'taki `cargo test` gibi dilin araç zincirine yerleşiktir.

Test runner'lar sıklıkla test çerçeveleri ve assertion kütüphaneleriyle karıştırılır. Çerçeve, `describe`, `test` ve fixture hook'ları gibi test yazmak için API'yi sağlar; assertion kütüphanesi `expect(x).toBe(y)` gibi kontrolleri sağlar; runner ise testleri çalıştırır ve sonuçları raporlar. Pek çok popüler araç üçünü birden barındırır; adların sıklıkla birbirinin yerine kullanılmasının nedeni budur. CI sunucusu ise yine farklıdır: test runner'ı daha büyük bir hattın bir adımı olarak çalıştırır.

## Önemli noktalar

- Test runner, otomatik testleri keşfeder, çalıştırır ve raporlar.
- Başarısızlıkta sıfırdan farklı bir çıkış kodu, CI hatlarının bozuk değişiklikleri engellemesini sağlar.
- Yaygın özellikler paralel çalıştırma, izleme modu, filtreleme ve zaman aşımlarıdır.
- Raporlar, JUnit XML gibi insan tarafından okunabilir ya da makine tarafından okunabilir olabilir.
- Çerçeve testlerin nasıl yazılacağını tanımlar; runner onları çalıştırır.

## Örnek: Yaygın test runner komutları

```bash
# Discover and run all test files with Node.js's built-in runner
node --test

# Run only the tests whose names match a pattern
node --test --test-name-pattern="checkout"

# Rerun affected tests automatically whenever a file changes
node --test --watch

# Python: run tests matching "checkout" and stop at the first failure
pytest -k checkout -x

# 0 means every test passed; anything else means at least one failed
echo $?
```

## Sık sorulan sorular

**Test runner ile test çerçevesi arasındaki fark nedir?**

Test çerçevesi, testleri yazmak ve düzenlemek için fonksiyonlar sağlar; test runner ise bu testleri bulur, çalıştırır ve sonuçları raporlar. Pek çok araç ikisini de içerir, bu yüzden terimler sıklıkla gevşek biçimde kullanılır.

**Test runner'lar testleri neden paralel çalıştırır?**

Testleri birkaç süreç üzerinde aynı anda çalıştırmak geri bildirim döngüsünü kısaltır; bu büyük takımlar için önemlidir. Yalnızca testler bağımsız olduğunda ve değiştirdikleri verileri paylaşmadıklarında güvenilir biçimde çalışır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
