قم بإنشاء تقارير تغطية الاختبار لمشاريع Xcode وربطها في CI.
| مشروع | التغطية |
|---|---|
| parsimmon | |
| فينسور | |
| Dazabtest | |
| tbstatemachine |
أضف هذا السطر إلى Gemfile في التطبيق الخاص بك:
جوهرة "slather"
ثم تنفيذ:
حزمة $
أو تثبيت الأحجار الكريمة:
GEM تثبيت slather
تمكين تغطية الاختبار عن طريق وضع علامة على مربع الاختيار "جمع بيانات التغطية" عند تحرير مخطط:

للتحقق من أنك مستعد لإنشاء تغطية اختبار ، وتشغيل مجموعة الاختبار الخاصة بك في مشروعك ، ثم تشغيل:
تغطية slater $ -Scheme YouRxCodesChemename Path/to/project.xcodeproj
إذا كنت تستخدم مساحة عمل في Xcode ، فأنت بحاجة إلى تحديدها:
تغطية $ slater -s -yourxcodeschemename -workspace path/to/workspace.xcworkspace path/to/project.xcodeproj
إذا كنت تستخدم تكوينًا مختلفًا لاختباراتك:
تغطية $ slater -s -yourxcodeschemename -التكوين الخاص بك
إذا كان التكوين الخاص بك ينتج ثنائيًا عالميًا ، فأنت بحاجة إلى تحديد بنية محددة لاستخدامها:
تغطية $ slater -S -Arch x86_64 -Scheme YouRxCodesChemename -التكوين الخاص بك
إذا كنت ترغب في تشغيل بعض الوحدات ، ولكن ليس كل (مثل الوحدات النمطية التي أنشأتها Cocoapods) ، يمكنك القيام بذلك على هذا النحو:
تغطية $ slater-Barinary-Basename Module1-Barinary-Basename Module2 path/to/project.xcodeproj
يمكنك أيضًا إضافته إلى ملف .slather.yml كصفيف:
binary_basename: - الوحدة 1 - الوحدة 2
قم بتشغيل هذا الأمر لتمكين Generate Test Coverage Instrument Program Flow لمشروعك:
$ slater setup path/to/project.xcodeproj
عند استخدام كل من ملف config ( .slather.yml ) وتوفير الوسائط عبر سطر الأوامر ، فإن الوسيطات ستأخذ الأسبقية على إعداد المطابقة في ملف التكوين.
ignore دائمًا يفوز على source-files عند تحديد كلا الملفات التي يجب تجاهلها ( --ignore ، تجاهل) الملفات المصدر لتضمينها ( --source-files ، Source_Files) ، يتم التحقق من قائمة التجاهل أولاً. إذا كان الملف الذي يتم مسحه ضوئيًا يتطابق مع كرة في قائمة التجاهل ، فلن يتم تضمينه. في هذه الحالة ، لم يتم التحقق من قائمة Source_File.
إذا لم يكن الملف الذي يتم مسحه ضوئيًا في قائمة التجاهل ، وتم تحديد Source_File ، يتم التحقق من قائمة Source_File. إذا كان الملف المصدر يتطابق مع الكرة الأرضية ، فسيتم تضمينه.
تسجيل الدخول إلى Codecov (لا حاجة لتفعيل مستودع ، يحدث هذا تلقائيا). في الوقت الحالي ، يدعم slather CODECOV عبر جميع مقدمي CI المدعومون المدرجين هنا.
قم بعمل ملف .slather.yml :
# .slather.ymlcoverage_service: cobertura_xmlxcodeproj: path/to/project.xcodeprojscheme: yourxcodeschemenameConfiguration - مثال Podcode/* - ProjectTestSgroup/*
ثم في .travis.yml ، circle.yml (أو بعد أوامر الاختبار في مقدمي خدمات CI الآخرين) ، اتصل slather بعد بناء ناجح:
# .travis.ymlbefore_install: rvm استخدم $ rvm_ruby_versioninstall: bundle install -without = documentation -path ../travis_bundle_dirafter_success: - Slather -bash <(curl -s https://codecov.io/bash) -f path/to/xml_report/cobertura.xml -x coveragepy -x gcov -x xcode
# circle.ymltest: post:
-حزمة exec slather- bash <(curl -s https://codecov.io/bash) -f path/to/xml_report/cobertura.xml -x coveragepy -x gcov -x xcodeريبو الخاص؟ أضف
-t :uuid-repo-tokento Codecov Uploader. اقرأ المزيد حول التحميل إلى Codecov هنا
تسجيل الدخول إلى Coveralls وتمكين مستودعك. في الوقت الحالي ، يدعم slather Coveralls عبر Travis CI و Circleci و Jenkins و TeamCity و BuildKite و BitRise.
قم بعمل ملف .slather.yml وحدد خدمة CI التي تستخدمها:
# .slather.ymlci_service: circleci | travis_ci | travis_pro | جنكينز | BuildKite | TeamCityCoverage_Service: coverallsxcodeproj: path/to/project.xcodeprojscheme: yourxcodeschemenameignore: - مثال Podcode/* - ProjectTestSgroup/*
ثم في .travis.yml أو circle.yml أو github-action.yml ، اتصل بـ slather بعد بناء ناجح:
# .travis.ymlbefore_install: rvm استخدم $ rvm_ruby_versioninstall: bundle install -without = documentation -path ../travis_bundle_dirafter_success: slater
# circle.ymltest: post:
- حزمة exec slather # github-action.yml
myjob: الخطوات:
- تشغيل: | حزمة تهيئة بائع/حزمة حزمة حزمة تثبيت -بدون توثيق -jobs 4 -retry 3 -الاسم: استخراج الفرع nameshell: bashrun: echo "## [set -output name = branch ؛] $ (echo $ {github_ref# Refs/Heads/}) "ID: GET_BRANCH - RUN: BUNDLE EXEC SLASHERENV: GIT_BRANCH: $ {steps.get_branch.outputs.branch}} github_token}} لاستخدام Coveralls مع Travis CI Pro (من أجل إعادة الشراء الخاصة) ، أضف الأسطر التالية مع إعدادات أخرى إلى .slather.yml :
# .slather.ymlci_service: travis_procoverage_access_token: <your excess token>
يمكن العثور على رمز التغطية في صفحة Coveralls Repo. أو يمكن تمريره عبر COVERAGE_ACCESS_TOKEN Environment var.
لإنشاء تقرير تقرير Cobertura XML cobertura_xml كخدمة تغطية داخل .slather.yml . اختياريا يمكنك تحديد دليل الإخراج لتقرير XML:
# .slather.ymlcoverage_service: cobertura_xmlxcodeproj: path/to/project.xcodeprojscheme: yourxcodeschemenamesource_directory: path/to/mounts/to/includeOutput_directory: path/to/xml_ - مثال Podcode/* - ProjectTestSgroup/*
أو استخدم خيارات سطر الأوامر- --cobertura-xml أو -x و- --output-directory :
تغطية slater $ -x -مسار الإخراج -الإخراج/إلى/xml_report
لإنشاء تقرير كصفحات HTML ثابتة ، استخدم خيارات سطر الأوامر --html :
تغطية $ slater -html -yourxcodeschemename path/to/project.xcodeproj
سيؤدي ذلك إلى إنشاء دليل يدعى html في دليل الجذر الخاص بك (ما لم يتم تحديد --output-directory ) وسيقوم بإنشاء جميع التقارير كصفحات HTML ثابت داخل الدليل. سيقوم بطباعة مسار التقرير بشكل افتراضي ، ولكن يمكنك أيضًا تحديد --show العلم لفتحه في متصفحك تلقائيًا.
بشكل افتراضي ، ستشير HTML التي تم إنشاؤها إلى الأصول المستضافة محليًا (JS ، CSS). يمكنك تحديد --cdn-assets لتحديد أنك تفضل أن يستخدم HTML الذي تم إنشاؤه الأصول المستضافة خارجيًا. يمكن أن يكون هذا مفيدًا إذا نشرت ملف HTML باعتباره قطعة أثرية.
للإبلاغ عن إحصائيات التغطية إلى TeamCity:
تغطية $ slater -teamcity -s -yourxcodeschemename
إذا كنت تحاول حساب تغطية الكود التي تم تضمينها عبر Cocoapods ، فستحتاج إلى إخبار Cocoapods باستخدام المكون الإضافي Slater عن طريق إضافة ما يلي إلى Podfile .
البرنامج المساعد "slather"
ستحتاج أيضًا إلى إخبار Slather بمكان العثور على الملفات المصدر لجرابك.
# .slather.ymlsource_directory: pods/afnetworking
سيبحث Slather عن ملفات تغطية الاختبار في DerivedData افتراضيًا. إذا قمت بإرسال إخراج البناء إلى موقع مخصص ، مثل هذا ، فيجب عليك أيضًا تعيين خاصية build_directory في .slather.yml
قم بتضمين وسيطة --workspace أو إضافة workspace إلى .slather.yml إذا قمت بإنشاء مشروعك في مساحة عمل. على سبيل المثال:
تغطية $ slater -html -yourxcodeschemename -workspace path/to/workspace.xcworkspace path/to/project.xcodeproj
نود أن نرى أفكارك لتحسين هذه المكتبة! أفضل طريقة للمساهمة هي تقديم طلب سحب. سنبذل قصارى جهدنا للرد على التصحيح في أقرب وقت ممكن. يمكنك أيضًا إرسال مشكلة GitHub جديدة إذا وجدت الأخطاء أو لديك أسئلة.
يرجى التأكد من اتباع نمط الترميز العام لدينا وإضافة تغطية اختبار لميزات جديدة!
tpoulos ، الشعار المثالي.
ayanonagon و kylef ، ردود الفعل والاختبار.
jhersh ، دعم circleci.
@tarbrain ، دعم cobertura و bugfixing.
@khsan ، دعم HTML.
@Martin-Key و Troyfontaine ، دعم إجراءات Github.