สร้างรายงานความครอบคลุมการทดสอบสำหรับโครงการ XCODE & เชื่อมต่อเป็น CI
โครงการ | ความครอบคลุม |
---|---|
พาร์สซิมมอน | |
เวนเซร์ | |
Dazabtest | |
tbstatemachine |
เพิ่มบรรทัดนี้ใน Gemfile ของแอปพลิเคชันของคุณ:
อัญมณี 'slather'
แล้วดำเนินการ:
$ BUNDLE
หรือติดตั้งอัญมณี:
อัญมณีติดตั้ง slather
เปิดใช้งานการทดสอบความครอบคลุมโดยทำเครื่องหมายในช่องทำเครื่องหมาย "รวบรวมข้อมูลครอบคลุม" เมื่อแก้ไขโครงการ:
ในการตรวจสอบว่าคุณพร้อมที่จะสร้างความครอบคลุมการทดสอบให้เรียกใช้ชุดทดสอบของคุณในโครงการของคุณแล้วเรียกใช้:
$ Slather Coverage -S -SCHEME YOURXCODESCHEMENAME PATH/TO/PROCIL.XCODEPROJ
หากคุณใช้พื้นที่ทำงานใน XCode คุณต้องระบุ:
$ Slather Coverage -S -SCHEME YOURXCODESCHEMENAME -PATH -WORKSPACE PATH/TO/WORKSPACE.XCWORKSPACE PATH/to/Project.xCodeProj
หากคุณใช้การกำหนดค่าอื่นสำหรับการทดสอบของคุณ:
$ Slather Coverage -S -SCHEME YORXCODESCHEMENAME -การกำหนดค่าของ YourBuildConfigurationName Path/to/Project.xCodeProj
หากการกำหนดค่าของคุณสร้างไบนารีสากลคุณต้องระบุสถาปัตยกรรมเฉพาะที่จะใช้:
$ Slather Coverage -s -arch x86_64 -scheme yourxcodeschemename -การกำหนดค่าของ YourBuildConfigurationName Path/to/project.xcodeproj
หากคุณต้องการเรียกใช้โมดูลบางอย่าง แต่ไม่ใช่ทั้งหมด (เช่นโมดูลที่สร้างโดย cocoapods) คุณสามารถทำได้เช่นนี้:
$ Slather Coverage-Binary-Basename Module1-Binary-Basename Module2 Path/to/project.xcodeproj
นอกจากนี้คุณยังสามารถเพิ่มลงในไฟล์ .slather.yml
เป็นอาร์เรย์:
binary_basename: - โมดูล 1 - Module2
เรียกใช้คำสั่งนี้เพื่อเปิดใช้งาน Generate Test Coverage
และ Instrument Program Flow
สำหรับโครงการของคุณ:
$ Slather Setup Path/to/project.xcodeproj
เมื่อใช้ทั้งไฟล์กำหนดค่า ( .slather.yml
) และการให้อาร์กิวเมนต์ผ่านทาง Commandline อาร์กิวเมนต์จะมีความสำคัญกว่าการตั้งค่าการจับคู่ในไฟล์ config
ignore
ที่จะชนะมากกว่า source-files
เมื่อกำหนดไฟล์ทั้งสองที่ควรถูกละเว้น ( --ignore
, ละเว้น) และไฟล์ต้นฉบับเพื่อรวม ( --source-files
, source_files) รายการที่ละเว้นจะถูกตรวจสอบก่อน หากไฟล์ที่ถูกสแกนตรงกับ GLOB ในรายการที่ไม่สนใจจะไม่รวมอยู่ด้วย ในกรณีนี้รายการ source_file จะไม่ถูกตรวจสอบ
หากไฟล์ที่ถูกสแกนไม่ได้อยู่ในรายการที่ไม่สนใจและมีการกำหนด source_file แล้วรายการ source_file จะถูกตรวจสอบ หากไฟล์ต้นฉบับตรงกับลูกโลกจะรวมอยู่ด้วย
เข้าสู่ระบบไปยัง Codecov (ไม่จำเป็นต้องเปิดใช้งานที่เก็บข้อมูลนี้จะเกิดขึ้นโดยอัตโนมัติ) ตอนนี้ slather
รองรับ Codecov ผ่านผู้ให้บริการ CI ที่ได้รับการสนับสนุน ทั้งหมด ที่ระบุไว้ที่นี่
สร้างไฟล์ .slather.yml
:
# .Slather.ymlCoverage_Service: COBERTURA_XMLXCODEPROJ: PATH/to/Project.XCODEPROJSCHEME: YOURXCODESCHEMENAMECONFIGURATION: TESTEDCONFIGURATIONORCE_DIRECTORY: เส้นทาง/ไปยัง/แหล่ง/ - ExamplePodCode/* - ProjectTestSgroup/*
และใน .travis.yml
, circle.yml
(หรือหลังจากคำสั่งทดสอบในผู้ให้บริการ CI รายอื่น) โทร slather
หลังจากสร้างที่ประสบความสำเร็จ:
# .travis.ymlbefore_install: rvm ใช้ $ rvm_ruby_versioninstall: การติดตั้งชุด - -without = เอกสาร ---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: โพสต์: -Bundle Exec Slather- bash <(curl -s https://codecov.io/bash) -f path/to/xml_report/cobertura.xml -x coveragepy -x gcov -x xcode
repo ส่วนตัว? เพิ่ม
-t :uuid-repo-token
ไปยังผู้อัปโหลด Codecov อ่านเพิ่มเติมเกี่ยวกับการอัปโหลดรายงานไปยัง Codecov ที่นี่
เข้าสู่ระบบเพื่อปกปิดและเปิดใช้งานที่เก็บข้อมูลของคุณ ตอนนี้ 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: - ExamplePodCode/* - ProjectTestSgroup/*
จากนั้นใน .travis.yml
หรือ circle.yml
หรือ github-action.yml
โทรหา slather
หลังจากสร้างที่ประสบความสำเร็จ:
# .travis.ymlbefore_install: rvm ใช้ $ rvm_ruby_versioninstall: การติดตั้งชุด - -without = เอกสารประกอบ -path ../travis_bundle_dirafter_success: slather
# circle.ymltest: โพสต์: - Slather Exec
# github-action.yml MyJob: ขั้นตอน: - วิ่ง: | การติดตั้ง Bundle Config Path Vendor/Bundle Bundle -Without = Documentation -Jobs 4 - -retry 3 -ชื่อ: Extract Branch Nameshell: bashrun: echo "## [ชื่อ set -output = branch;] $ (echo $ {github_ref# refs/heads/}) "id: get_branch - run: bundle exec slatherenv: git_branch: $ {{steps.get_branch.outputs.branch}} ci_pull_request: $ {{github.event.number}}}}}}}}}}}}}}}}}}}}}} github_token}}
หากต้องการใช้ coveralls กับ travis ci pro (สำหรับ repos ส่วนตัว) เพิ่มบรรทัดต่อไปนี้พร้อมกับการตั้งค่าอื่น ๆ เพื่อ .slather.yml
:
# .slather.ymlci_service: travis_procoverage_access_token: <โทเค็นการเข้าถึงของคุณ>
โทเค็นครอบคลุมสามารถพบได้ที่หน้า repo coveralls หรือสามารถส่งผ่านผ่านทางสภาพแวดล้อม COVERAGE_ACCESS_TOKEN
var
ในการสร้างชุดรายงาน COBERTURA XML SET cobertura_xml
เป็นบริการครอบคลุมภายใน . .slather.yml
ของคุณ คุณสามารถกำหนดไดเรกทอรีเอาต์พุตสำหรับรายงาน XML:
# .Slather.ymlCoverage_Service: COBERTURA_XMLXCODEPROJ: PATH/to/Project.XCODEPROJSCHEME: YOURXCODESCHEMEMENAMEORCE_DIRECTORY: PATH/TO/SOURCES - ExamplePodCode/* - ProjectTestSgroup/*
หรือใช้ตัวเลือกบรรทัดคำสั่ง --cobertura-xml
หรือ -x
และ --output-directory
:
$ Slather Coverage -x -Outtput -Directory Path/to/xml_report
ในการสร้างรายงานเป็นหน้า HTML แบบคงที่ให้ใช้ตัวเลือกบรรทัดคำสั่ง --html
:
$ Slather Coverage -HTML -SCHEME YOURXCODESCHEMENAME PATH/TO/PROCIL.XCODEPROJ
สิ่งนี้จะทำให้ไดเรกทอรีชื่อ html
ในไดเรกทอรีรูทของคุณ (เว้นแต่ว่า-การระบุ --output-directory
จะถูกระบุ) และจะสร้างรายงานทั้งหมดเป็นหน้า HTML แบบคงที่ภายในไดเรกทอรี มันจะพิมพ์เส้นทางของรายงานตามค่าเริ่มต้น แต่คุณสามารถระบุ --show
ธงเพื่อเปิดในเบราว์เซอร์ของคุณโดยอัตโนมัติ
โดยค่าเริ่มต้น HTML ที่สร้างขึ้นจะอ้างอิงสินทรัพย์ที่โฮสต์ในพื้นที่ (JS, CSS) คุณสามารถระบุ --cdn-assets
เพื่อระบุว่าคุณต้องการ HTML ที่สร้างขึ้นเพื่อใช้สินทรัพย์ที่โฮสต์ภายนอก สิ่งนี้จะมีประโยชน์หากเผยแพร่ไฟล์ HTML เป็นสิ่งประดิษฐ์สร้าง
เพื่อรายงานสถิติความคุ้มครองต่อ TeamCity:
$ Slather Coverage -TEAMCITY -S -SCHEME YORXCODESCHEMENAME
หากคุณกำลังพยายามคำนวณความครอบคลุมของรหัสที่รวมผ่าน Cocoapods คุณจะต้องบอก Cocoapod ให้ใช้ปลั๊กอิน Slather โดยเพิ่มสิ่งต่อไปนี้ลงใน Podfile
ของคุณ
ปลั๊กอิน 'slather'
คุณจะต้องบอก Slather ว่าจะหาไฟล์ต้นฉบับสำหรับพ็อดของคุณได้ที่ไหน
# .Slather.ymlsource_directory: Pods/Afnetworking
Slather จะค้นหาไฟล์การทดสอบความครอบคลุมใน DerivedData
โดยค่าเริ่มต้น หากคุณส่งบิลด์เอาท์พุทไปยังตำแหน่งที่กำหนดเองเช่นนี้คุณควรตั้งค่าคุณสมบัติ build_directory
ใน .slather.yml
รวมอาร์กิวเมนต์ --workspace
หรือเพิ่ม workspace
ลงใน .slather.yml
หากคุณสร้างโครงการของคุณในพื้นที่ทำงาน ตัวอย่างเช่น:
$ Slather Coverage -HTML -SCHEME YOURXCODESCHEMENAME -PATH -WORKSPACE PATH/TO/WORKSPACE.XCWORKSPACE PATH/to/Project.xCodeProj
เราชอบที่จะเห็นความคิดของคุณในการปรับปรุงห้องสมุดนี้! วิธีที่ดีที่สุดในการมีส่วนร่วมคือการส่งคำขอดึง เราจะพยายามอย่างเต็มที่เพื่อตอบสนองต่อแพตช์ของคุณโดยเร็วที่สุด นอกจากนี้คุณยังสามารถส่งปัญหา GitHub ใหม่ได้หากคุณพบข้อบกพร่องหรือมีคำถาม
โปรดตรวจสอบให้แน่ใจว่าได้ติดตามสไตล์การเข้ารหัสทั่วไปของเราและเพิ่มความครอบคลุมการทดสอบสำหรับคุณสมบัติใหม่!
@tpoulos โลโก้ที่สมบูรณ์แบบ
@ayanonagon และ @kylef คำติชมและการทดสอบ
@Jhersh, การสนับสนุน Circleci
@tarbrain การสนับสนุน Cobertura และการแก้ไขข้อผิดพลาด
@Ikhsan, การสนับสนุน HTML
@Martin-Key และ @troyfontaine การสนับสนุนการกระทำของ GitHub