2011-01-04 8 views
34

Test yönteminin sonucuna özel bir mesaj ekleyebileceğim bir yol var mı? Ne kadar sürdüğünü görmek için kodun bir bölümünde kronometre koymak istiyorum. Belirli bir zaman diliminde çalışıp çalışmadığını test etmem gerekmiyor, sadece sonuç penceresinde geçen sürenin ne olduğunu görmek istiyorum.Birim test sonucuna özel mesaj ekle

cevap

61

Eğer mstest kullandığınız varsayarsak, dilediğiniz çıkışı için

System.Diagnostics.Trace.WriteLine("Hello World"); 

kullanabilirsiniz. Test koşucunun tam sonuçlarında görünecektir.

+0

Bu işe yaradı. Ama çıktıyı adlandıracak bir şey var mı, kaydedilen test verilerinin kaydedilmesi için –

6

Yukarıdaki örnek benim için işe yaramadı ama şu yaptı:

mesajı benim Deney sonuçlarının Hata Mesajı Diyalog görüntülemek istediğiniz herhangi bir hata olduğunu
var result = routeManager.UpdateWalkingOrder(previouspremiseFuncLoc, premiseFuncLoc, out message); 

Assert.AreEqual(true, result, message); 

. Yukarıdaki örnekte, bu işlevi yürüttüğümde ve test sonuçlarında göstererek hata ayıklama için büyük bir yardımcı olan hataları döndürüyorum.

Sizin durumunuzda sadece çalışma süresini görüntüleyebilirsiniz.

+4

'u kaydetmemize izin verin. Bu sadece onaylama işleminde başarısız olacaktır. – Schaliasos

+0

Ve test günlüklerine bir "Arıza" ekler. –

1

Mesajın uzunluğuna bağlı olarak, Console.WriteLine'u kullanmak isteyebilirsiniz. Test sonuçlarına, sütun adı Output (StdOut) eklenir, böylece test çalıştırma ayrıntılarına girmeden görebilirsiniz.

Test edilen özelliklerin sayısı veya testlerin gerçekten çalıştırıldığına dair herhangi bir kanıt gibi bazı çok genel bilgilerin çıktısını almayı faydalı buluyorum.

Durum mesajınız yoksa, birisi kodunuzu sabote ederse ve test yöntemi gövdesinden her şeyi sildiyse ne olur? Şimdi hepsi geçiyor, ama hiç yardımcı değil.

5

Test Sonuçlarına bir mesaj çıkarmanın bir yolunu bulmaya çalışırken aynı yola gittim. Sadece senin elapsedtimeString bir içine saklamak ve sadece kullanabilirsiniz:

Console.WriteLine(elapsedtime);

gayet benim için çalıştı.