سؤال

هل هناك أي فرصة للحصول على هذا العمل؟أريد أن يتم تشغيل اختباراتي بواسطة مهمة nunit2 في NAnt.بالإضافة إلى ذلك، أريد تشغيل NCover دون إجراء الاختبارات مرة أخرى.

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

المحلول

اكتشفتها.يمكنك تغيير مسار مشغل NUnit إلى مسار مشغل TeamCity.هنا مثال:

    <mkdir dir="${build}/coverage" failonerror="false"/>

    <!-- run the unit tests and generate code coverage -->
    <property name="tools.dir.tmp" value="${tools.dir}"/>
    <if test="${not path::is-path-rooted(tools.dir)}">
        <property name="tools.dir.tmp" value="../../${tools.dir}"/>
    </if>

    <property name="nunitpath" value="${lib.dir}/${lib.nunit.basedir}/bin/nunit-console.exe"/>
    <property name="nunitargs" value=""/>
    <if test="${property::exists('teamcity.dotnet.nunitlauncher')}">
        <property name="nunitpath" value="${teamcity.dotnet.nunitlauncher}"/>
        <property name="nunitargs" value="v2.0 x86 NUnit-2.4.8"/>
    </if>

    <ncover program="${tools.dir.tmp}/${tools.ncover.basedir}/ncover.console.exe"
       commandLineExe="${nunitpath}"
       commandLineArgs="${nunitargs} ${proj.name.unix}.dll"
       workingDirectory="${build}"
       assemblyList="${proj.srcproj.name.unix}"
       logFile="${build}/coverage/coverage.log"
       excludeAttributes="System.CodeDom.Compiler.GeneratedCodeAttribute"
       typeExclusionPatterns=".*?\{.*?\}.*?"
       methodExclusionPatterns="get_.*?; set_.*?"
       coverageFile="${build}/coverage/coverage.xml"
       coverageHtmlDirectory="${build}/coverage/html/"
    />

كما ترون، لدي بعض المتغيرات الخاصة بي هناك، ولكن يجب أن تكون قادرًا على معرفة ما يحدث.الخاصية التي تهتم بها هي teamcity.dotnet.nunitlauncher.يمكنك قراءة المزيد عنها هنا على http://www.jetbrains.net/confluence/display/TCD4/TeamCity+NUnit+Test+Launcher.

نصائح أخرى

لماذا لا تقوم Ncover بتشغيل NUnit؟تحصل على نفس نتائج الاختبار بالضبط.أيضًا، ما الذي تحاول قياسه بالضبط عند تشغيل Ncover خارج الاختبارات؟هناك طرق أخرى للعثور على التعليمات البرمجية القديمة أو غير المرجعية.

علي أن أفعل نفس الشيء.أعتقد أن أفضل ما يمكن أن نأمله هو فتح ملف NUnit jar الذي يأتي مع TeamCity وكتابة مهمة مخصصة تدمج NUnit2 وNCover.أتمنى ألا يكون الأمر كذلك، لكن مهمة NUnit2 لا تنتج أي مخرجات مرئية، لذا من الواضح أن TeamCity لا يقرأ StdOut للحصول على نتائج الاختبار.

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