جنکینز
WebdriverIO ادغام محکمی با سیستمهای CI مانند Jenkins ارائه میدهد. با گزارشدهنده junit
، میتوانید به راحتی تستهای خود را اشکالزدایی کنید و همچنین نتایج تست خود را پیگیری کنید. این ادغام بسیار ساده است.
- گزارشدهنده تست
junit
را نصب کنید:$ npm install @wdio/junit-reporter --save-dev
) - پیکربندی خود را بهروزرسانی کنید تا نتایج XUnit خود را در جایی که Jenkins میتواند آنها را پیدا کند ذخیره کنید،
(و گزارشدهنده
junit
را مشخص کنید):
// wdio.conf.js
module.exports = {
// ...
reporters: [
'dot',
['junit', {
outputDir: './'
}]
],
// ...
}
انتخاب چارچوب به عهده شماست. گزارشها مشابه خواهند بود. برای این آموزش، از Jasmine استفاده خواهیم کرد.
پس از نوشتن چند تست، میتوانید یک کار جدید Jenkins راهاندازی کنید. به آن یک نام و توضیحات بدهید:
سپس مطمئن شوید که همیشه جدیدترین نسخه مخزن شما را دریافت میکند:
حالا بخش مهم: یک مرحله build
برای اجرای دستورات شل ایجاد کنید. مرحله build
باید پروژه شما را بسازد. از آنجا که این پروژه نمایشی فقط یک برنامه خارجی را آزمایش میکند، نیازی به ساخت چیزی ندارید. فقط وابستگیهای node را نصب کنید و دستور npm test
را اجرا کنید (که مخفف node_modules/.bin/wdio test/wdio.conf.js
است).
اگر افزونهای مانند AnsiColor نصب کردهاید، اما هنوز لاگها رنگی نیستند، تستها را با متغیر محیطی FORCE_COLOR=1
اجرا کنید (به عنوان مثال، FORCE_COLOR=1 npm test
).
پس از تست، میخواهید Jenkins گزارش XUnit شما را پیگیری کند. برای انجام این کار، باید یک اقدام پس از ساخت به نام "Publish JUnit test result report" اضافه کنید.
شما همچنین میتوانید یک افزونه XUnit خارجی برای پیگیری گزارشهای خود نصب کنید. افزونه JUnit با نصب پایه Jenkins ارائه میشود و برای حال حاضر کافی است.
طبق فایل پیکربندی، گزارشهای XUnit در دایرکتوری اصلی پروژه ذخیره میشوند. این گزارشها فایلهای XML هستند. بنابراین، تنها کاری که باید برای پیگیری گزارشها انجام دهید این است که Jenkins را به تمام فایلهای XML در دایرکتوری اصلی خود هدایت کنید:
همین! شما اکنون Jenkins را برای اجرای کارهای WebdriverIO راهاندازی کردهاید. کار شما اکنون نتایج تست مفصلی با نمودارهای تاریخی، اطلاعات ردیابی پشته در کارهای ناموفق، و لیستی از دستورات با محتوایی که در هر تست استفاده شده است، ارائه میدهد.