كيف يمكنني تشغيل (الوحدة) الاختبارات في مجلدات مختلفة/المشاريع بشكل منفصل في Visual Studio?

StackOverflow https://stackoverflow.com/questions/13938

سؤال

Visual Studio folder structure

أريد نصيحة كيف بسهولة يمكنك اختبار منفصل يعمل من أجل وحدة اختبارات و اختبار التكامل في Visual Studio.في كثير من الأحيان أو دائما ، أنا هيكل الحل المعروض في الصورة أعلاه:مشاريع منفصلة عن وحدة الاختبارات اختبارات التكامل.وحدة الاختبارات يتم تشغيل بشكل متكرر جدا في حين أن اختبارات التكامل بشكل طبيعي عند تشغيل السياق هو محاذاة بشكل صحيح.

هدفي هو بطريقة أو بأخرى تكون قادرة على تكوين أي اختبارات (أو اختبار مجلدات) لتشغيل عند استخدام اختصار لوحة المفاتيح.الاختبارات ويفضل تشغيل رسومية اختبار عداء (ReSharpers).لذلك على سبيل المثال

  • Alt+1 تدير الاختبارات في المشروع BLL.الاختبار ،
  • Alt+2 تدير الاختبارات في المشروع الدال.الاختبارات ،
  • Alt+3 أشواط لهم على حد سواء (أيجميع الاختبارات في [اختبارات] مجلد ،
  • Alt+4 تدير الاختبارات في مجلد [اختبارات.التكامل].

TestDriven.net لديك خيار من تشغيل فقط الاختبار في المجلد المحدد أو المشروع عن طريق النقر عليه بزر الماوس الأيمن واختر تشغيل اختبار(ق).تكون قادرة على القيام بذلك ، ولكن عن طريق لوحة المفاتيح الأوامر الرسومية اختبار عداء من شأنها أن تكون رهيبة.

TestDriven.net test run output

حاليا أنا استخدم VS2008 ، ReSharper 4 و nUnit.ولكن نصيحة من أجل الإعداد العام هو بالطبع أيضا تقدير.

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

المحلول

أنا فعلا وجدت نوع من حل هذا بنفسي باستخدام لوحة المفاتيح الأمر لا بد أن ماكرو.كان الماكرو المسجلة من القائمة أدوات>ماكرو>سجل TemporaryMacro.في حين تم تسجيل اخترت بلدي [اختبارات] مجلد وركض ReSharpers UnitTest.ContextRun.ونتج عن هذا الماكرو التالي

Sub TemporaryMacro()
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate
    DTE.ActiveWindow.Object.GetItem("TestUnitTest\Tests").Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.ExecuteCommand("ReSharper.UnitTest_ContextRun")
End Sub

ثم لا بد أنها تملك مفاتيح القيادة في أدوات>خيارات>البيئة>لوحة المفاتيح.

ومع ذلك ، ما من شأنه أن يكون أكثر من رائع هو أعم الحل أين يمكنني تكوين بالضبط الذي المشاريع/المجلدات/دروس لتشغيل وعندما.على سبيل المثال عن طريق ملف xml.هذا يمكن بسهولة أن يتم التحقق في التحكم في الإصدار وتوزيعها على كل من يعمل مع هذا المشروع.

نصائح أخرى

هذا هو قليلا من ذكي الحل, ولكن هل يمكن تكوين بعض أدوات خارجية لكل من مجموعة من الاختبارات التي تريد تشغيلها.أنا لست متأكدا مما إذا كنت سوف تكون قادرة على إطلاق ReSharper عداء اختبار هذه الطريقة ، ولكن يمكنك تشغيل إصدار وحدة التحكم من nunit.وبمجرد الانتهاء من تلك الأدوات الإعداد ، يمكنك تعيين اختصارات لوحة المفاتيح إلى الأوامر "أدوات.ExternalCommand1", "أدوات.ExternalCommand2" ، الخ.

هذا متعود حقا نطاق جيد جدا, و من الصعب التغيير - ولكن سوف تعطيك اختصارات لوحة المفاتيح لتشغيل الاختبارات الخاصة بك.يبدو أنه يجب أن يكون هناك طريقة اسهل بكثير من القيام بذلك.

يمكنك استخدام VS الكلي تحليل ملف XML ثم اتصل nunit.exe مع /اساسيا وسيطة سطر الأوامر لتحديد الطبقات إلى تشغيل أو إنشاء اختيار حفظ الملف وتشغيل nunit باستخدام هذا.

أنا لم تستخدم هذا ولكن ربما أنها يمكن أن تساعد....

http://www.codeplex.com/VS2008UnitTestGUI

"وصف المشروع هذا المشروع هو تشغيل كل وحدة اختبار الداخل متعددة .صافي وحدة الاختبارات الجمعية مشفرة مع Visual Studio 2008."

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