2009-04-13 11 views
5

Kabuk içinde TAP gördüğü, uygulamaya çalıştığı veya başka şekilde oynamış olan var mı? Birçok dilde birim testleri oluşturmaya çalışıyoruz (şu ana kadar bunun neden mevcut olmadığına başlamamı sağlayın), ve çok fazla Perl kodumuz olduğu için, TAP'a bakacağız. hayal etmek). C, Perl için bir TAP kitaplığı buldum, tabii ki yerleşiktir ve Java için bir API bile buldum. Ancak bir alan eksik kabuk komut dosyası testidir.Kabuk komut dosyalarındaki herhangi bir Protokolü Test Et

Birim test kabuğu komut dosyalarında fazla bir şey bulamadım, ancak binlerce satırlık kodumuz olduğundan, bunu bir şekilde test edebilmemiz güzel olurdu.

cevap

9

Kütüphaneler listesi için TAP Producers listesine bakın. Bu listede kabuk kodu için Tap-functions bulacaksınız.

+1

Sadece Bourne Again Shell'i değil, Bourne Shell'de koşan bir şeyi umuyordum, ama hiçbir şeyden daha iyi değil! – Tanktalus

+1

Her iki bağlantı da bozuk. – Lukas

3

Genellikle kabuk komut dosyalarım için kendi küçük sınama çerçevemi yazıyorum. Bunu yaparken aklınızda bulundurmanız gereken bazı noktalar:

  • Dosyalarla çalışırken, testlerinizde değiştirebileceğiniz bazı değişkenlere göre tüm yolları hazırlayın.
  • diff(1)
  • test sonuçlarını doğrulamak için (ve kullanıcı için yararlı bir hata iletisi görüntülemek için), adı geçen bu benim "testi
  • kullanın yerel değişkenler yoğun
  • Her şey bir fonksiyonu

olmalıdır büyüktür çerçeve "çoğunlukla kabuk işlevleri (test* olarak adlandırılır) ve bunlara birer birer çağrı yapan bir runTests işlevidir. Gerçekten süslü bir şey yok. Testler, test için bir çalışma dizini oluşturur, gerekli tüm dosyaları buraya kopyalar, bir işlevi çalıştırır, sonuçları iyi-iyi bir dosya setine göre doğrular.

3
  • Bats basittir Bash, yalnızca test çerçevelerini test eder, testler çok net bir sözdizimiyle yazılabilir. En eski kabuk sınama çerçevesi, küçük belgelerdir.
  • shUnit2 shUnit'ten esinlenen, ancak tamamen farklı bir projedir. Testler daha xUnit bir şekilde yazılabilir. En önemlisi, POSIX uyumludur.
İlgili konular