2010-09-10 20 views
6

Birden çok iş parçacığıyla sınamaları gerçekleştirebilen .NET platformu için bir birim sınama çerçevesi bulmaya çalışıyorum.Birden çok iş parçacığıyla sınama yapabilen .NET birim sınama çerçevesi

NUnit, bu iş parçacıklarındaki istisnalar dikkate alınmadığından, iş parçacığı iş parçacığı sınamalarını desteklemez. Roy Osherove'nin bir uzantısı var, ama oldukça tarihte 1.

MBUnit, birçok iş parçacığı tarafından bir eşzamanlı olarak yürütülmesine izin verir, ancak bir iş parçacığı içinde oluşturulan iş parçacıklarını destekleyip desteklemediğini bilmiyorum. Örneğin, eşzamanlı bir koleksiyonu test etmek için, eşzamanlı çalışan farklı türde dişler (üretici iplikleri ve tüketici iplikleri) istiyorum. aynı test kodunu yürüten birden fazla iş parçacığı olması yeterli değildir.

Teşekkür Pedro

+0

Sanırım ünite testleri tekrarlanabilir olmalı. Multithreading olan şey, yarış koşullarının ve diğer zamanlama sorunlarının ortaya çıkmasının test vakasının çalıştığı ortama fazlasıyla bağlı olmasıdır. Yani bu bana biraz çelişkili geliyor. – Jan

+0

@Jan Tekrar üretebilmek için muazzam kontrole ihtiyaç duyduğunuzu kabul ediyorum. Dişli bir birim testi çalıştırmanız, test çerçevesinin Windows üzerinden iş parçacığı/zamanlamayı tamamen devralması gerektiği anlamına gelir ve her kesinti kombinasyonunu açıkça belirtmeniz gerekir. – Stefan

cevap

1

Ben ana sorun (yani ana iş parçacığı) "test parçacığı" konulu olmaz istisnalar testi başarısızlıkla sonuçlanır kalmamasıdır olduğunu varsayıyorum.

Bu istisnaların göz ardı edilmesi bir şekilde kontrol edilebilir. Ben ReSharper testi koşucu açısından bir blog yayınında bu konuyu açıklamak, ama aynı düzeltme NUnit koşucu için geçerlidir:

ReSharper test runner – hidden thread exceptions

anahtar testleri çalıştıran yürütülebilir için legacyUnhandledExceptionPolicy yapılandırıyor.

İlgili konular