سؤال

أرغب في إجراء فحص البناء الليلي لمعرفة عدد NotImplementedExeptions الموجودة في كود .NET الخاص بي، لذا نأمل أن نتمكن من إزالتها جميعًا قبل الإصدار.فكرتي الأولى هي أن FxCop قد يكون أداة جيدة للقيام بذلك.هل لدى أي شخص قاعدة FxCop مخصصة لهذا؟كيف سأقوم بإنشاء واحدة بنفسي؟

هل كانت مفيدة؟

المحلول

لقد قمت بالفعل بتنفيذ واحدة وأظهرت الكود فيها هذه الإجابة.

نصائح أخرى

وسوف اختبار وحدة من هذا القبيل تفشل إذا كان أكثر من 10 طرق خلق NotImplementedException. على فشلها سيكون التقرير عن الأساليب التي تخلق هذا الاستثناء.

var throwingMethods = codebase.Methods
  .Where(m => m
         .GetInstructions()
         .Exists(i => i.Creates<NotImplementedException>()))
  .ToArray();

if (throwingMethods.Length > 10)
  CollectionAssert.IsEmpty(throwingMethods);

وأين يتم إنشاء مصدر برنامج من هذا القبيل:

var codebase = new Codebase("Assembly1.dll","Assembly2.dll");

ومقتطف يستخدم Lokad.Quality.dll من Lokad المكتبات المشتركة .

وهناك طن من الموارد على شبكة الانترنت حول كيفية جعل حكم FxCop الخاصة بك، ولكن منذ "NotImplementedException 'هو مثل اسم فريد، ربما يمكن أن لا مجرد عدد من الحدوث في النص من الملفات. إنشاء ItemGroup لجميع الملفات .cs ثم استخدام الأمر المناسب DOS (مثل "العثور على / ج") والحصول على عدد والإخراج، عبر مهمة EXEC.

وهناك أوقات عندما NotImplementedExeption <م> يجب يتم طرح - ومثال واحد يكون إذا قمت التنفيذ الجزئي للIBindingList

وهناك الكثير من <لأ href = "HTTP: // المدونات. asp.net/pglavich/archive/2005/07/19/419869.aspx "يختلط =" نوفولو noreferrer "> <الموارد على أ href =" http://www.binarycoder.net/fxcop/html/index هتمل "يختلط =" نوفولو noreferrer "> هناك للحصول على <لأ href =" http://blogs.msdn.com/kcwalina/archive/2007/10/02/Multi_2D00_TargetingAndFxCop.aspx "يختلط =" نوفولو noreferrer "> href="http://www.daniweb.com/forums/thread164939.html" rel="nofollow noreferrer"> مخصصة <لأ href =" HTTP: // bordecal.mvps.org/Nicole/FxCop/CustomRuleDetails.htm "يختلط =" نوفولو noreferrer "> قواعد fxCop . ومع ذلك، فإن "تجد في حل" قد يكون نهج مناسب (على افتراض أنك لا تحتاج هذه في بناء الآلي)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top