KUnit: Линуксийн цөмд зориулсан нэгж туршилтын шинэ хүрээ

Такс

Өнгөрсөн мягмар гарагт Google-ийн инженер Брендан Хиггинс KUnit-ийг нэвтрүүлэхдээ 31 нөхөөс бүхий туршилтын багцыг зарласан цөмийн кодыг хадгалах, чанарыг сайжруулахад туслах шинэ Линуксийн цөмийн нэгж туршилтын тогтолцоо юм.

Энэ багц засварууд KUnit нь Линуксийн цөмийн туршилтын хүрээ болохыг санал болгож байна.

Autotest ба kselftest-ээс ялгаатай нь KUnit бол туршилтын машин эсвэл виртуал машин дээр цөм суулгах шаардлагагүй жинхэнэ туршилтын хүрээ юм мөн хост дээр ажиллаж байгаа хэрэглэгчийн орон зайд тест бичих шаардлагагүй болно.

KUnit-ийн тухай

KUnit бол Linux цөмд зориулагдсан хөнгөн жинтэй дууриамал, туршилтын хүрээ юм. Нэгжийн тестүүд нь илүү нарийн ширхэгтэй байх ёстой бөгөөд тэдгээр нь алдаатай харьцах кодыг ашиглахад бэрхшээлтэй байдаг сонгодог бэрхшээлийг хялбархан шийдвэрлэхийн тулд бүх кодын замыг туршиж чаддаг.

KUnit Энэ нь JUnit, Python-ийн unittest.mock болон Googletest / Googlemock-ээс маш их урам зориг авдаг. C ++ дээр. KUnit нь нэгж туршилтын тохиолдлуудыг тодорхойлох, холбогдох тестийн тохиолдлуудыг тестийн цуглуулгад нэгтгэх, туршилт, макет, тагнуул, бусад зүйлсийн нийтлэг дэд бүтцийг бий болгох байгууламжуудаар хангадаг.

Брендан Хиггинсийн тодорхойлсноор:

Нэгж тест нь дан нэгжийн кодыг тусад нь туршиж үзэх учиртай тул үүнийг нэрлэнэ. Тестийн хяналтаас гадуур хамаарал байх ёсгүй; Энэ нь гадны хамаарал байхгүй гэсэн үг бөгөөд энэ нь магнитудын туршилтыг хурдан захиалах боломжийг олгодог.

Түүнчлэн, гадны хамаарал байхгүй тул тестийг ажиллуулахын тулд үсрэх цагираг байхгүй болно. Түүнчлэн, энэ нь нэгж тестийг детерминик шинж чанартай болгодог - бүтэлгүйтсэн нэгжийн тест нь үргэлж асуудлыг илэрхийлдэг.

Эцэст нь нэгж тестүүд нь илүү нарийн ширхэгтэй байх тул сонгодог асуудлыг хялбархан шийдвэрлэхийн тулд бүх кодын замыг туршиж үзэх боломжтой юм.

Алдаатай харьцах кодыг хэрэгжүүлэхэд бэрхшээлтэй байна.

Цөмийг туршина уу

Brende бичихдээ:

“Дээрээс нь KUnit хурдан байдаг: дуудлагаас дуустал KUnit хэдхэн секундын дотор хэдэн арван туршилт хийж чаддаг. Одоогийн байдлаар KUnit-т зориулсан KUnit туршилтын багцыг бүхэлд нь эхний дуудлагаас секундэд хүрэхгүй хугацаанд ажиллуулж байна (хөрвүүлэх хугацааг хассан).

KUnit нь Линуксийн цөмд зориулсан бусад туршилтын тогтолцоог орлуулах эсэхийг асуухад Бренден үүнийг үгүйсгэж:

“Линукс цөмийн одоо байгаа тестүүдийн ихэнх нь төгсгөлгүй тестүүд байдаг. Сайн шалгагдсан систем нь маш олон нэгж тест, боломжийн тооны интеграцийн тест, заримаас төгсгөл хүртэл тесттэй байдаг.

KUnit нь одоогоор шийдэгдээгүй байгаа драйверын туршилтын зайг л шийдвэрлэхийг оролдож байна.

Линуксийн тестийн шийдлийг KUnit 

KUnit нь асуудлыг шийддэг ARM, x86, X64 гэх мэт виртуал машин эсвэл жинхэнэ техник хангамж шаардалгүйгээр тест хийх боломжтой байх.

Гэсэн хэдий ч бусад архитектуруудаас ялгаатай нь энэ нь тусдаа програмд ​​хөрвүүлэгддэг бөгөөд үүнийг бусад програмын адил хост хост үйлдлийн систем дотор шууд ажиллуулж болно; Тодорхой байхын тулд энэ нь виртуалчлалын дэмжлэг шаарддаггүй; Энэ бол ердийн нэг шоу юм.

KUnit хурдан. Гүйцэтгэхээс дуустал хөрвүүлэх хугацааг хасч тооцвол KUnit нь 10-20 секундын дотор хэдэн арван туршилтыг хийж чаддаг.

Энэ нь зарим хүмүүсийн хувьд тийм ч их асуудал биш юм шиг санагдаж болох боловч маш хурдан бөгөөд амархан тест хийх нь арга замыг үндсээр нь өөрчилдөг тест хийх, код бичих ажлыг эхлээд хийдэг.

KUnit-ийн гадна, цөмийг туршилтын машин эсвэл VM дээр суулгах шаардлагагүй цөмийн туршилтын хүрээ одоогоор байхгүй байна. мөн эдгээр нь бүгд цөм дээр ажиллаж байгаа хэрэглэгчийн орон зайд тест бичихийг шаарддаг; Энэ нь Autotest, kselftest-ийн хувьд үнэн бөгөөд энэ нь хоёуланг нь нэгжийн тестийн хүрээ гэж үзэх эрхийг хасах болно.


Нийтлэлийн агуулга нь бидний зарчмуудыг баримталдаг редакцийн ёс зүй. Алдааны талаар мэдээлэхийн тулд товшино уу энд байна.

Сэтгэгдэл бичих эхний хүн бай

Сэтгэгдэлээ үлдээгээрэй

Таны и-мэйл хаяг хэвлэгдсэн байх болно. Шаардлагатай талбарууд нь тэмдэглэгдсэн байна *

*

*

  1. Мэдээллийг хариуцах: Мигель Анхель Гатан
  2. Мэдээллийн зорилго: СПАМ-ыг хянах, сэтгэгдлийн менежмент.
  3. Хууль ёсны байдал: Таны зөвшөөрөл
  4. Мэдээллийн харилцаа холбоо: Хуулийн үүргээс бусад тохиолдолд мэдээллийг гуравдагч этгээдэд дамжуулахгүй.
  5. Өгөгдөл хадгалах: Occentus Networks (ЕХ) -с зохион байгуулсан мэдээллийн сан
  6. Эрх: Та хүссэн үедээ мэдээллээ хязгаарлаж, сэргээж, устгаж болно.