ແບ່ງປັນໂຄ້ດທົດສອບ
ເຫດຜົນ
ເພື່ອເຮັດໃຫ້ຂັ້ນຕອນການເຮັດວຽກຂອງ CI ມີຄວາມໜ້າເຊື່ອຖື ແລະ ມີປະສິດທິພາບ, ມັນເປັນສິ່ງສຳຄັນຫຼາຍທີ່ຈະຕ້ອງຮັກສາການຄວບຄຸມການທົດສອບ (test coverage) ໃຫ້ຢູ່ໃນສະພາບທີ່ດີຕະຫຼອດເວລາ. ການແບ່ງປັນໂຄ້ດທົດສອບລະຫວ່າງຫຼາຍໆແພັກເກດ (ເຖິງແມ່ນວ່າຈະຢູ່ໃນຫຼາຍບຣານຊ໌ຂອງແພັກເກດດຽວກັນກໍຕາມ) ອາດຈະຊ່ວຍໄດ້ຫຼາຍໃນການ:
-
ປ້ອງກັນການເຮັດໂຄ້ດທົດສອບຊໍ້າຊ້ອນ
-
ຫຼຸດຜ່ອນການບຳລຸງຮັກສາການທົດສອບ
-
ກວດພົບຄວາມບໍ່ເຂົ້າກັນໄດ້ຢ່າງວ່ອງໄວ
ໂດຍທົ່ວໄປແລ້ວ, ການທົດສອບຈະກຳນົດວ່າຊອບແວເຮັດວຽກແນວໃດ ແລະ ຟັງຊັນພື້ນຖານຂອງຫຼາຍໆແພັກເກດກໍບໍ່ໄດ້ປ່ຽນແປງເລື້ອຍໆປານໃດ. ພວກເຮົາພະຍາຍາມຢ່າງເຕັມທີ່ເພື່ອຮັກສາການເຂົ້າກັນໄດ້ກັບເວີຊັນກ່ອນໜ້າ (backward compatibility) ໃນບ່ອນທີ່ເປັນໄປໄດ້. ດັ່ງນັ້ນ ມັນຈຶ່ງເບິ່ງຄືວ່າເປັນເລື່ອງປົກກະຕິທີ່ຄອມໂພເນນເຫຼົ່ານັ້ນ, ການທົດສອບທີ່ຄວບຄຸມ spec ອາດຈະປ່ຽນແປງຊ້າກວ່າບຣານຊ໌ຂອງການແຈກຢາຍ (distribution branches).
ເບິ່ງການສົນທະນາທັງໝົດໃນ ci-list discussion ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ.
ການຈັດຕັ້ງປະຕິບັດ
ເກັບໂຄ້ດທົດສອບໄວ້ໃນເຣໂປຊິທໍຣີທີ່ເຈົ້າຕ້ອງການ ແລະ ອ້າງອີງເຖິງການທົດສອບຈາກໄຟລ໌ dist-git yaml. ນອກນັ້ນ ຍັງມີເນມສະເປຊ (namespace) tests ພິເສດທີ່ອຸທິດໃຫ້ກັບການເກັບການທົດສອບການເຮັດວຽກຮ່ວມກັນຂອງ Fedora CI:
ໃຊ້ fedpkg ເພື່ອໂຄລນເຣໂປຊິທໍຣີຈາກເນມສະເປຊ tests ໄດ້ຢ່າງວ່ອງໄວ:
fedpkg clone tests/shell
ຕົວຢ່າງ
ນີ້ຄືບາງຕົວຢ່າງຈາກການນຳໃຊ້ຕົວຈິງ ບ່ອນທີ່ການແບ່ງປັນໂຄ້ດທົດສອບສາມາດເພີ່ມປະສິດທິພາບໃນໄລຍະຍາວໄດ້.
SELinux
ຫຼາຍໆຄອມໂພເນນຂອງ SELinux user space ແມ່ນໄດ້ແບ່ງປັນການທົດສອບຮ່ວມກັນໃນເຣໂປຊິທໍຣີການທົດສອບ selinux ອັນດຽວ:
Ruby
ອີກຕົວຢ່າງໜຶ່ງແມ່ນ Ruby: ດ້ວຍແພັກເກດປະມານ 80 ແພັກເກດທີ່ກ່ຽວຂ້ອງກັບ Ruby on Rails, ມັນຈະເປັນປະໂຫຍດ ແລະ ມີປະສິດທິພາບຫຼາຍ ຖ້າມີບ່ອນດຽວສຳລັບການທົດສອບການເຮັດວຽກຮ່ວມກັນ (integration tests) ເພື່ອກວດສອບວ່າເຟຣມເວີກ (framework) ຍັງເຮັດວຽກໄດ້ຢ່າງຖືກຕ້ອງຫຼັງຈາກອັບເດດແພັກເກດໃດໜຶ່ງເຫຼົ່ານີ້. ໃນທາງກັບກັນ, ການບຳລຸງຮັກສາການທົດສອບເຫຼົ່ານັ້ນໃນ 80 ເຣໂປຊິທໍຣີຈະເປັນວຽກທີ່ໜ້າເບື່ອໜ່າຍ.
ປັດຈຸບັນ ເຣໂປຊິທໍຣີ tests/ruby ທີ່ໃຊ້ຮ່ວມກັນ ໄດ້ເກັບການທົດສອບການເຮັດວຽກຮ່ວມກັນຂອງ ruby ທັງສາມຢ່າງນີ້:
-
systemtap-static-probes-in-ruby - ທົດສອບການນຳໃຊ້ systemtap api ຂອງ ruby
-
tls-minimal-version - ensure Ruby OpenSSL respects crypto-policies
-
run-basic-rails-application - ລັນແອັບພລິເຄຊັນ rails ແບບພື້ນຖານ
Shell
ມີຫຼາຍ Shell ທີ່ຈັດຕັ້ງປະຕິບັດຕາມຂໍ້ກຳນົດຂອງ POSIX:
-
bash
-
ksh
-
mksh
-
zsh
-
dash
ພວກມັນທັງໝົດລ້ວນແຕ່ມີການທົດສອບທີ່ຄືກັນໃນຫຼາຍໆສ່ວນ ແລະ ມັນບໍ່ມີເຫດຜົນທີ່ຈະສ້າງ ແລະ ບຳລຸງຮັກສາການທົດສອບທີ່ຄືກັນໃນຫ້າເຣໂປຊິທໍຣີທີ່ແຕກຕ່າງກັນ (+ ບຣານຊ໌ທີ່ເປັນໄປໄດ້).
ເຣໂປຊິທໍຣີການທົດສອບ Shell:
Bash plans/shell.fmf:
summary:
Run relevant tests from the shell tests repository
discover:
how: fmf
url: https://src.fedoraproject.org/tests/shell
filter: component:bash
execute:
how: tmt
environment:
PACKAGES: bash
SH_BIN: bash
ເລີ່ມຕົ້ນ
ເພື່ອສ້າງເຣໂປຊິທໍຣີໃໝ່ໃນເນມສະເປຊ tests, ໃຫ້ໃຊ້ຄຳສັ່ງ request-tests-repo ຂອງ fedpkg. ຕົວຢ່າງ: ການສ້າງເຣໂປຊິທໍຣີການທົດສອບທີ່ໃຊ້ຮ່ວມກັນໃນຊື່ foo, ເຊິ່ງຈະສາມາດເຂົ້າເຖິງໄດ້ທີ່ https://src.fedoraproject.org/tests/foo.git
-
ຕັ້ງຄ່າການຢືນຢັນຕົວຕົນ (authentication) ໄປທີ່ pagure ຕາມຄຳແນະນຳໃນຄຳສັ່ງ help ຂອງ request-repo
fedpkg request-repo -h
-
ສົ່ງຄຳຮ້ອງຂໍສ້າງເຣໂປຊິທໍຣີໃໝ່ພ້ອມກັບຄຳອະທິບາຍທີ່ເໝາະສົມ
fedpkg request-tests-repo foo "Description of the repository"
Want to help? Learn how to contribute to Fedora Docs ›