Specs Runner
Gherkin .feature dosyalarında her senaryonun ve feature'ın üstüne Run (▶) ve Debug butonu ekler. Tek tıkla, senaryoya özgü tag ile testi entegre terminalde çalıştırır veya breakpoint'lerle hata ayıklar.
Özellikler
- Run / Debug CodeLens — her
Scenario: ve Feature: satırının üstünde tıklanabilir butonlar.
- Sıradan bağımsız tag tespiti — tag yazım sırası veya proje farkı önemli değil; senaryoya özel tag otomatik bulunur.
- Tek senaryo veya tüm feature — senaryo butonu o senaryoyu, feature butonu tüm feature'ı çalıştırır.
- Breakpoint'li Debug — Debug butonu testhost'a .NET debugger'ı otomatik bağlar; C# adım tanımlarındaki breakpoint'ler çalışır. VSTest giriş durakları otomatik geçilir, böylece manuel "Continue" gerekmez.
- Klavye kısayolları —
Cmd/Ctrl+Shift+S (Run), Cmd/Ctrl+Shift+D (Debug): imlecin bulunduğu senaryoyu çalıştırır.
- Sağ tık menüsü —
.feature dosyalarında Run/Debug komutları.
- Yapılandırılabilir komutlar — varsayılan
bash run.sh <tag> / bash debug.sh <tag>; kendi runner'ınıza uyarlanabilir.
Kullanım
- Bir
.feature dosyası açın.
- Bir senaryonun üstündeki
▶ Run veya Debug butonuna tıklayın.
- Komut entegre terminalde çalışır (Debug için debugger otomatik bağlanır).
Tüm feature'ı çalıştırmak için Feature: satırının üstündeki ▶ Run Feature / Debug Feature butonlarını kullanın.
Tag tespiti
Her senaryo birden çok tag taşıyabilir (@featureTag @featureTag_scenarioSlug @prod @staging). Specs Runner, çalıştırılacak senaryoya özel tag'i şu şekilde seçer:
- Ortam/etiket tag'lerini (
@prod, @staging, @test, …) hariç tutar.
specsRunner.tagRegex tanımlıysa eşleşen tag'i kullanır.
- Aksi halde dosyada yalnızca bir kez geçen (senaryoya özel) tag'i seçer.
- Belirsizlik kalırsa hızlı seçim (quick pick) ile sorar.
Bu sayede tag'lerin yazım sırasından bağımsız çalışır.
Ayarlar
| Ayar |
Varsayılan |
Açıklama |
specsRunner.command |
bash run.sh ${tag} |
Run komutu. ${tag}, ${file}, ${workspaceFolder} değişkenlerini destekler. |
specsRunner.debugCommand |
bash debug.sh ${tag} |
Debug komutu. Aynı değişkenleri destekler. |
specsRunner.envTags |
["prod", "staging", "test", …] |
Tag seçiminde hariç tutulan ortam/etiket tag'leri. |
specsRunner.tagRegex |
"" |
Çalıştırılacak tag'i seçmek için opsiyonel regex. |
specsRunner.terminalName |
Specs Runner |
Komutun çalıştığı entegre terminalin adı. |
specsRunner.clearTerminalBeforeRun |
false |
Her çalıştırmadan önce terminali temizle. |
specsRunner.showFeatureLens |
true |
Feature: satırına Run/Debug butonu ekle. |
specsRunner.autoContinueEntryBreaks |
true |
Debug sırasında VSTest giriş duraklarını otomatik geç (manuel Continue gerekmez). |
specsRunner.ignorePaths |
["/ci-test/"] |
Bu alt-yolları içeren .feature dosyalarında devre dışı kal. |
Ayarları proje bazında .vscode/settings.json ile geçersiz kılabilirsiniz:
{
"specsRunner.command": "bash run.sh ${tag}",
"specsRunner.debugCommand": "bash debug.sh ${tag}",
"specsRunner.tagRegex": "^[a-z][A-Za-z0-9]*_[A-Za-z0-9]+$"
}
Debug akışı
Debug butonu specsRunner.debugCommand'i çalıştırır. Önerilen debug.sh akışı:
- Build artefaktlarını ve geçici dosyaları temizle.
- Debug konfigürasyonunda derle.
- Testhost'u debugger'a hazır şekilde başlat.
Specs Runner, testhost sürecini yakalayıp .NET debugger'ı otomatik bağlar; breakpoint'ler tetiklenir, giriş durakları atlanır. Breakpoint'li debug için C# eklentisi (ms-dotnettools.csharp) gereklidir.
Gereksinimler
- Visual Studio Code
^1.60.0
- Breakpoint'li debug için: C# eklentisi (
ms-dotnettools.csharp)
Kurulum
code --install-extension specs-runner-1.1.0.vsix
Lisans
MIT