Komut satırı araçlarını test için en iyi?

oy
13

Kendimizi yazmak ve sık kullandığınız olan komut satırı araç geniş bir koleksiyona sahiptir. Onları test Şu anda çok zahmetlidir ve dolayısıyla biz biz zerre olarak olduğu kadar test yapmayın.

Herkes bu tür şeyleri iyi bir iş yapmak için iyi teknikleri veya araçları önerebilir olmadığını merak ediyorum.

Düzenleme: Bu UNIX olduğunu açıklığa kavuşturmak için

Şimdiden teşekkürler. Tom

Oluştur 09/12/2008 saat 16:46
kaynak kullanıcı
Diğer dillerde...                            


8 cevaplar

oy
4

Kullanılması Cram etkileşimli bir kabuk oturumu benzeyen testler yazabilir. Cram sonra, testin komutları tekrar referansına çıktı karşılaştırmak ve farklılıkları bildirir. Testler biçimi oldukça esnektir ve Perl regex ya da kabuk benzeri joker kullanarak çıktıyı eşleşmesini sağlar.

Cevap 02/07/2015 saat 19:34
kaynak kullanıcı

oy
4

Aruba bir olan salatalık herhangi bir programlama dilinde yazılmış komut satırı uygulamaları test etmek için uzantısı.

Bunu kullanmak için, testler için yakut gerekir, ancak aruba amacı, çalışılabilir bir test takımı yapmak için herhangi bir yakut kod yazmak gerekmez, böylece önceden tanımlanmış adım tanımların bir kütüphane sağlamaktır. (Bir noktada muhtemelen birkaç özel adımlar atmasının yakut biraz yazmak istiyorum edecek olsa.)

Burada aruba ile test bir komut satırı aracı sofistike örnek görebilirsiniz: jingweno / gh

Cevap 28/02/2014 saat 05:56
kaynak kullanıcı

oy
4

Komut satırı yardımcı programı işlevleri ve / veya sınıfların bir kütüphane için bir istemci olacak şekilde ben senin komut satırı aracının kodun yapısını öneririz.

Aksine sadece sonuç verecek std :: cout kullanmak yerine, kütüphaneler işlev varsayılan std o bir ostream referansı :: cout götürsün. Eğer test ederken en çıkışını toplamak için bir std :: stringstream sağlarlar.

Son olarak, sadece favori birim test çerçevesini kullanarak beklenen sonuçları ile kamu hizmeti gören çıkışını karşılaştırın.

(Ben de diğer dillerde benzer şeyleri yapmaya yolu vardır eminim ... C ++ spesifik bir örnek için özür).

Cevap 10/12/2008 saat 03:36
kaynak kullanıcı

oy
3

Daha sonra, bir dosyaya çıktı yönlendirmek, (MS işletim sistemlerinde, toplu dosya) bir kabuk onları aramak doğru çıkışı sağlamak için programlı dosyayı taramak mümkün olmalıdır. Bunu senin için otomatik olarak gerçekleştiren bir test çerçevenin farkında değilim, ama kendiniz kurmak için oldukça sağlıyor olmalı.

Cevap 09/12/2008 saat 16:52
kaynak kullanıcı

oy
2

Ben kullanarak (çoooook zaman önce hehe) bu biraz yaptığını Expect oldu ne oldu ben ee, beklenenden kontrol etmek

Cevap 09/12/2008 saat 17:02
kaynak kullanıcı

oy
1

Yarasalar (Bash Otomatik Test Sistemi) Sam Stephenson tarafından. Bu kabuk tamamen yazılı, küçük ve özellikleri güzel kümesi vardır.

Daha önce önerilen Aruba ilginç görünüyor, ancak bazı durumlarda bu bağımlılıkları açısından bir overkill sessiz olabilir (yakut, salatalık)

Cevap 17/04/2016 saat 10:44
kaynak kullanıcı

oy
0

Sen ile perl kullanabilirsiniz Testi :: fazla kütüphane, CLIS test etmek için büyük bir çerçeve sağlar. Öncelikle birim test için tasarlanmış olsa da, bunun kullanıcı iş akışlarını test etmek genişletmek olabilir.

yöntemlerden bazıları:

 # Various ways to say "ok"
  ok($got eq $expected, $test_name);
  is  ($got, $expected, $test_name);
  isnt($got, $expected, $test_name);

  # Rather than print STDERR "# here's what went wrong\n"
  diag("here's what went wrong");

  like  ($got, qr/expected/, $test_name);
  unlike($got, qr/expected/, $test_name);

  cmp_ok($got, '==', $expected, $test_name);

Cevap 15/01/2015 saat 19:19
kaynak kullanıcı

oy
0

Bir toplu iş dosyası oder pencereler komut dosyası ana bilgisayardan yapabilirsiniz.

Ama (gibi bir görev zamanlayıcı söz http://www.splinterware.com/products/wincron.htm ) ya da diğer serbest / profesyonel yazılım.

Eğer ilgili birçok 100 kez yazılımınızı test istediğimde Orada kolay kopyalama /, üzerinde değişiklik gerektiğini komut satırı parametreleri yapıştırabilirsiniz ?!

Cevap 09/12/2008 saat 16:54
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more