سؤال

هل قام أي شخص بجعل NCover وTypeMock وMSTest يعملان معًا؟وإذا كان الأمر كذلك كيف.

لقد قمت بمحاولتين أو ثلاث محاولات جادة للقيام بذلك الآن ولم أتمكن من تشغيله.

أنا أستخدم MSTest 9 وNCover 2.1 وTypeMock 4.1.

من الناحية المثالية، أود تشغيلها من مهمة MSBuild.

هتاف حصيرة

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

المحلول

حسنًا، لقد فات الأوان بعض الشيء ولكن إليك الإجابة للأجيال القادمة...
بعض النقاط الرئيسية:

  • في الإصدار الأقدم من Typemock (مثل 4.1)، تحتاج إلى ترخيص مؤسسة حتى تتمكن من تشغيل Typemock مع NCover.في الإصدار الحالي، تحتوي جميع التراخيص على نفس قائمة الميزات.
  • لكي تتمكن من تشغيل Typemock مع ملفات التعريف الأخرى، فإنك تحتاج إلى استخدام ميزة الارتباط الخاصة بـ Typemock.في حالتك يمكنك القيام بذلك باستخدام مهمة Typemock MSBuild.
  • تحتاج إلى تشغيل MSTest باستخدام الوسيطة /noisolation.سيؤدي هذا إلى منع MSTest من إنتاج عملية VSTestHost.exe التي ستقوم بالفعل بتشغيل اختباراتك.يؤدي هذا إلى إنشاء مشكلة في تمكين متغيرات البيئة المطلوبة للسماح لملفات التعريف بالعمل

في المثال أدناه، أقوم بإجراء الاختبارات في Tests.dll وأطلب تقرير التغطية حول ClassLibrary.dll

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="RunTests" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Import Project ="c:\Program Files\Typemock\Isolator\5.2\TypeMock.MSBuild.Tasks" />

    <PropertyGroup>
        <NCOVER>"E:\src\TypeMock\Build\Binaries\NCover\NCover 2.0\NCover.Console.exe"</NCOVER>      
        <MSTest>"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe"</MSTest>    
    </PropertyGroup>

    <Target Name ="Test">
        <TypeMockStart Target="2.0" Link ="NCover2.0"/>
    <Exec ContinueOnError="true"  Command="$(NCOVER) //a ClassLibrary $(MSTest) /noisolation /testcontainer:E:\src\TestNcover3\MSBuildTest\bin\Debug\Tests.dll" />
    <TypeMockStop/>
</Target>
</Project>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top