সাইপ্রেস জসন কি: 11টি তথ্য আপনার জানা উচিত

আমরা আমাদের কোডে JSON লেখার জন্য JSON গঠন, উদাহরণ এবং বিস্তারিত হ্যান্ডস-অন অভিজ্ঞতা নিয়ে আলোচনা করব। কিন্তু, প্রথমে, আসুন আমাদের নিবন্ধে ডুব দেওয়া যাক!

সাইপ্রেস জসন কি: উদাহরণ, স্কিমা, বিস্তারিত হ্যান্ডস-অন বিশ্লেষণ

আমাদের আগেরটিতে প্রবন্ধ, আমরা ভেরিয়েবল এবং উপনাম এবং কিভাবে আমাদের প্রথম টেস্ট কেস লিখতে হয় তা নিয়ে আলোচনা করেছি। এখন, আমরা সাইপ্রেস জেএসওএন এবং কীভাবে এটি আমাদের কোডে অন্তর্ভুক্ত করব তা নিয়ে আলোচনা করব।

সাইপ্রেস জসন

সুচিপত্র

সাইপ্রেস JSON ফাইল

আমরা আগে দেখেছি, প্রথমবার আমরা আমাদের সাইপ্রেস টেস্ট রানার খুলি, এটি একটি তৈরি করে cypress.json ফাইল এই ফাইলটি আমাদের প্রয়োজনীয় যেকোনো কনফিগারেশন মান পাস করতে ব্যবহৃত হয়। তাই প্রথম, আমরা আমাদের মধ্যে পাস করতে পারেন যে বিকল্পগুলি তাকান হবে cypress.json ফাইল.

ডিফল্ট JSON বিকল্প

কিছু অপশন সাইপ্রেসে ডিফল্টরূপে সেট করা আছে। যাইহোক, আমরা আমাদের প্রকল্প অনুযায়ী তাদের কাস্টমাইজ করতে পারেন। সাইপ্রেস দ্বারা সেট করা ডিফল্ট মান সনাক্ত করতে, নেভিগেট করুন সেটিংস আমাদের সাইপ্রেস টেস্ট রানারে ফোল্ডার। সেখান থেকে, সাইপ্রেস দ্বারা সেট করা ডিফল্ট বিকল্পগুলি দেখতে কনফিগারেশন বিকল্পটি প্রসারিত করুন।

কনফিগারেশন সেটিংস
সাইপ্রেস JSON ফাইল

বিকল্পগুলি সাইপ্রেস দ্বারা প্রদত্ত ডিফল্ট কনফিগারেশন।

{
animationDistanceThreshold:5
baseUrl:null
blockHosts:null
browsers:Chrome, Firefox, Electron
chromeWebSecurity:true
component:{}
componentFolder:"cypress/component"
defaultCommandTimeout:4000
downloadsFolder:"cypress/downloads"
e2e:{}
env:null
execTimeout:60000
experimentalFetchPolyfill:false
experimentalInteractiveRunEvents:false
experimentalSourceRewriting:false
experimentalStudio:false
fileServerFolder:""
firefoxGcInterval:runMode, openMode
fixturesFolder:"cypress/fixtures"
hosts:null
ignoreTestFiles:".hot-update.js" includeShadowDom:false integrationFolder:"cypress/integration" modifyObstructiveCode:true nodeVersion:"default" numTestsKeptInMemory:50 pageLoadTimeout:60000 pluginsFile:"cypress/plugins" port:null projectId:"hpcsem" redirectionLimit:20 reporter:"spec" reporterOptions:null requestTimeout:5000 responseTimeout:30000 retries:runMode, openMode screenshotOnRunFailure:true screenshotsFolder:"cypress/screenshots" scrollBehavior:"top" supportFile:"cypress/support" taskTimeout:60000 testFiles:"/.*"
trashAssetsBeforeRuns:true
userAgent:null
video:true
videoCompression:32
videosFolder:"cypress/videos"
videoUploadOnPasses:true
viewportHeight:660
viewportWidth:1000
waitForAnimations:true
watchForFileChanges:true
}

অপশন সমূহ

আমরা আমাদের প্রকল্পের সাথে সামঞ্জস্যপূর্ণ যে কোনো আর্গুমেন্ট পাস করে সাইপ্রেসের ডিফল্ট বিকল্পগুলি পরিবর্তন করতে পারি। নাম অনুসারে, cypress.json হল একটি JSON ফাইল, তাই আমাদের আর্গুমেন্টগুলি JSON ফর্ম্যাটে পাস করতে হবে। আমাদের ভিএস কোডে, আপনি দেখতে পাচ্ছেন যে cypress.json কোনো আর্গুমেন্ট ছাড়াই খালি। এখন আসুন আমরা আমাদের JSON ফাইলে পাস করতে পারি এমন বিভিন্ন বিকল্প দেখি।

গ্লোবাল বিকল্প

আমরা বৈশ্বিক বিকল্পগুলিকে আর্গুমেন্টে পাস করতে পারি যা বিশ্বব্যাপী অ্যাক্সেস করা দরকার। উদাহরণস্বরূপ, নীচের সারণীতে, বিকল্প কলামটি আমাদের JSON ফাইলে যে কীওয়ার্ডটি পাস করব তা উপস্থাপন করে; ডিফল্ট সাইপ্রেস দ্বারা সেট করা নির্দিষ্ট বিকল্পের ডিফল্ট মান নির্দেশ করে এবং বিবরণ বিকল্পটির অর্থ নির্দেশ করে।

পছন্দডিফল্টবিবরণ
baseUrlnullআমরা প্রতিটি ফাইলে পাস করার পরিবর্তে ইউআরএল বিশ্বব্যাপী সেট করতে পারি। এর জন্য ব্যবহার করা যেতে পারে cy.visit() or cy.request() কমান্ড
clientCertificates[]আপনি URL এর ভিত্তিতে ক্লায়েন্ট সার্টিফিকেট কনফিগার করার জন্য এই বিকল্পটি ব্যবহার করতে পারেন
env{}আপনি মান হিসাবে যে কোনও পরিবেশের ভেরিয়েবল পাস করতে পারেন। এই বিকল্পটি কার্যকর হবে যদি আমরা স্টেজিং বা উৎপাদনের মতো বিভিন্ন পরিবেশে আমাদের অ্যাপ্লিকেশন পরীক্ষা করি।
watchForFileChangestrueএই বিকল্পটি সাইপ্রেস ঘড়ি দেখে এবং কোনো ফাইল পরিবর্তন করা হয়েছে কিনা তা পরীক্ষা করে।
portnullআমরা সাইপ্রেস হোস্টিং পোর্ট নম্বর পাস করতে পারেন. একটি র্যান্ডম পোর্ট তৈরি করা হয়, কিন্তু আমরা আমাদের প্রয়োজনীয় পোর্ট নম্বর যোগ করতে পারি।
numTestsKeptInMemory50এই বিকল্পটি মেমরিতে সংরক্ষিত পরীক্ষার স্ন্যাপশট এবং কমান্ড ডেটার সংখ্যা। একটি পরীক্ষা চালানোর সময় ব্রাউজারে উচ্চ মেমরি খরচ হলে, আমরা সংখ্যা কমাতে পারি।
retries{ "runMode": 0, "openMode": 0 }এই বিকল্পটি হল পরীক্ষায় ব্যর্থ হওয়ার জন্য কতবার পুনরায় চেষ্টা করার সংখ্যা নির্দিষ্ট করা। আমরা এটির জন্য আলাদাভাবে কনফিগার করতে পারি সাইপ্রেস রান এবং সাইপ্রাস খোলা.
redirectionLimit20একটি ত্রুটি ঘটার আগে অ্যাপ্লিকেশনটি কতবার রিডাইরেক্ট করা যেতে পারে তার জন্য আমরা সীমা কনফিগার করতে পারি।
includeShadowDomfalseউপাদানগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য ছায়া DOM-এর ভিতরে নেভিগেট করার ক্ষমতা। ডিফল্টরূপে, এটা মিথ্যা সেট করা হয়. আমাদের অ্যাপ্লিকেশানে শ্যাডো রুট নেভিগেশন প্রয়োজন এমন কোনো উপাদান থাকলে, আপনি এটি সেট করতে পারেন true.

সাইপ্রেস JSON সময়সীমা

যেকোন অটোমেশন ফ্রেমওয়ার্কের মধ্যে টাইমআউট হল অন্যতম গুরুত্বপূর্ণ ধারণা। সাইপ্রেস বিভিন্ন বিকল্প সরবরাহ করে যা আমাদের স্ক্রিপ্টে সময়সীমা পরিচালনা করতে সহায়তা করে। প্রথমত, আমরা কনফিগার করতে পারি এমন বিকল্পগুলি দেখব।

পছন্দডিফল্টবিবরণ
defaultCommandTimeout4000এই বিকল্পটি হল DOM এলিমেন্ট-ভিত্তিক কমান্ড লোড হওয়ার জন্য অপেক্ষা করা। এটি মিলিসেকেন্ডে।
requestTimeout5000সময়, মিলিসেকেন্ডে, সময় শেষ হওয়ার জন্য cy.wait() কমান্ডের অনুরোধ না হওয়া পর্যন্ত অপেক্ষা করার জন্য।
responseTimeout30000এই টাইমআউট হল কমান্ডের একটি সিরিজে প্রতিক্রিয়া হওয়া পর্যন্ত অপেক্ষা করতে হবে যেমন  cy.request()cy.wait()cy.fixture()cy.getCookie()
cy.getCookies()cy.setCookie()cy.clearCookie()cy.clearCookies(), এবং cy.screenshot() কমান্ড
taskTimeout60000টাইমআউট, মিলিসেকেন্ডে, এর সম্পাদনের জন্য সমাপ্তির জন্য cy.task() হুকুম
execTimeout60000মিলিসেকেন্ডে এই সময়টি কার্যকর করার জন্য অপেক্ষা করতে হবে cy.exec() আদেশ,
যা সিস্টেম কমান্ডের সমাপ্তি
pageLoadTimeout60000এই সময়সীমার জন্য অপেক্ষা করছে page navigation events বা কমান্ড যে ইন্টারঅ্যাক্ট
পেজ লাইক সহ cy.visit()cy.go()cy.reload()

সাইপ্রেস JSON ফাইল পড়ুন

কখনও কখনও, আমাদের প্রকল্পের ফোল্ডার বা ফাইলগুলির সাথে যোগাযোগ করতে হবে। ইন্টারঅ্যাক্ট করতে, আমাদের নির্দিষ্ট বিকল্পগুলি সেট করতে হবে cypress.json ফাইল ম্যানিপুলেট করার জন্য ফাইল। সুতরাং, প্রথমে, আমাদের ফোল্ডার/ফাইল কনফিগারেশনে উপলব্ধ বিকল্পগুলি দেখুন।

পছন্দডিফল্টবিবরণ
downloadsFoldercypress/downloadsএটি সেই পাথ যেখানে ফাইলগুলি ডাউনলোড করা হয় এবং পরীক্ষা চালানোর সময় সংরক্ষণ করা হয়
fixturesFoldercypress/fixturesএটি সেই ফোল্ডারের পাথ যেখানে ফিক্সচার ফাইল রয়েছে। আমরা পাস করতে পারি false ফাইল সংরক্ষণ নিষ্ক্রিয় করতে.
ignoreTestFiles*.hot-update.jsYou can pass this as a string or array of global patterns to ignore test files for the test run. However, it would be displayed in the test files.
integrationFoldercypress/integrationইন্টিগ্রেশন পরীক্ষার ফাইলগুলি ফোল্ডারে এই পাথে সংরক্ষণ করা হয়।
pluginsFilecypress/plugins/index.jsএই পাথ যেখানে প্লাগইন সংরক্ষণ করা হয়. এই কনফিগারেশনটি নিষ্ক্রিয় করতে আপনি যুক্তিটিকে মিথ্যা হিসাবে পাস করতে পারেন।
screenshotsFoldercypress/screenshotsScreenshots from the execution of cy.screenshot() command and test failure during cypress run are stored in this foldersupportFilecypress/support/index.jsHere the test files that load before the test are stored. You have the option to disable by passing false
testFiles**/*.*পরীক্ষা ফাইলের পাথ যা লোড করতে হবে। এটি হয় একটি স্ট্রিং বা গ্লোবাল প্যাটার্নের অ্যারে।
videosFoldercypress/videosফোল্ডার পাথ যা পরীক্ষা সম্পাদনের সময় ভিডিও সংরক্ষণ করবে

স্ক্রিনশট এবং ভিডিও বিকল্প

আমরা আমাদের cypress.json() ফাইলে আমাদের স্ন্যাপশট এবং ভিডিও কনফিগার করতে পারি এবং সাইপ্রেস আমাদের কনফিগারেশন কাস্টমাইজ করার জন্য কিছু বিকল্প প্রদান করে।

পছন্দডিফল্টবিবরণ
screenshotOnRunFailuretrueসাইপ্রেস চালানোর সময় পরীক্ষা ব্যর্থ হওয়ার সময় সাইপ্রেস একটি স্ক্রিনশট নেয় কিনা তা সত্য বা মিথ্যাতে সেট করার বিকল্প। এটা সেট করা হয় true গতানুগতিক
trashAssetsBeforeRunstrueএই বিকল্পটি হল সম্পদ ট্র্যাশ করার জন্য videosFolder, downloadsFolder এবং screenshotsFolder প্রত্যেকের আগে cypress run
videoCompression32এই বিকল্পটি হল ভিডিও কম্প্রেশনের গুণমান যা কনস্ট্যান্ট রেট ফ্যাক্টর (CRF) এ পরিমাপ করা হয়। পাশ করে false, আপনি এই বিকল্পটি নিষ্ক্রিয় করতে পারেন। আপনি 0 থেকে 51 পর্যন্ত মান পাস করতে পারেন, যেখানে সর্বনিম্ন মান আরও ভাল মানের দেয়।
videosFoldercypress/videosফোল্ডার যেখানে পরীক্ষার ভিডিও সংরক্ষণ করা হয়.
videotrueপরীক্ষা সম্পাদনের ভিডিও ক্যাপচার করার জন্য বুলিয়ান মান cypress run.
videoUploadOnPassestrueএই বিকল্পটি হল ভিডিওগুলিকে ড্যাশবোর্ডে আপলোড করার জন্য যখন একটি বিশেষ ফাইলের সমস্ত পরীক্ষার কেস পাস হয়৷

ভিউপোর্ট এবং কর্মক্ষমতা

আপনি সাইপ্রেস দ্বারা প্রদত্ত বিকল্পগুলির সাথে ভিউপোর্টের উচ্চতা এবং প্রস্থ পরিবর্তন করতে মানগুলি কনফিগার এবং পাস করতে পারেন। কর্মক্ষমতা বিকল্পগুলিও কনফিগার করা যেতে পারে।

পছন্দডিফল্টবিবরণ
viewportHeight660এটি পিক্সেলে অ্যাপ্লিকেশনের জন্য ডিফল্ট উচ্চতা প্রদান করা। আমরা এই কমান্ডটি দিয়ে ওভাররাইড করতে পারি cy.viewport()
viewportWidth1000অ্যাপ্লিকেশনের জন্য পিক্সেলে ভিউপোর্ট প্রস্থের বিকল্প। দিয়ে ওভাররাইড করা যাবে cy.viewport() কমান্ড।
animationDistanceThreshold5পিক্সেলে পরিমাপ করা দূরত্বের থ্রেশহোল্ড মান যেখানে অ্যানিমেট করার সময় বিবেচনা করে একটি উপাদানকে অতিক্রম করতে হবে।
waitForAnimationstrueকোনো কমান্ড সম্পাদন করার আগে উপাদানগুলি অ্যানিমেশন সম্পূর্ণ করার জন্য অপেক্ষা করার বিকল্প।
scrollBehaviortopএটি একটি ভিউপোর্ট বিকল্প যা কোনো কমান্ড সম্পাদন করার ঠিক আগে একটি উপাদানে স্ক্রোল করতে হবে। উপলব্ধ বিকল্প হয় 'center''top''bottom''nearest', বা false, যেখানে false স্ক্রলিং নিষ্ক্রিয় করে।

সাইপ্রেস JSON উদাহরণ

এর আগে, আমরা বিভিন্ন কনফিগারেশন দেখেছি আমরা আমাদের মধ্যে পাস করতে পারি cypress.json ফাইল এখন, আমরা আমাদের প্রকল্পে সেগুলি কীভাবে ব্যবহার করব তার একটি উদাহরণ দেখব।

cypress.json ফাইলে ডিফল্ট মান ওভাররাইড করা

আমাদের ভিএস কোডে, খুলুন cypress.json ফাইল আমরা ওভাররাইড করব defaultCommandTimeout কমান্ড 8000.

{
    "defaultCommandTimeout" : 8000
}

আমাদের ভিএস কোড প্রজেক্টে এটি এইরকম দেখায়।

ডিফল্ট টাইমআউট
cypress.json ফাইল

পরিবর্তন করে cypress.json ফাইল, এটি পুরো কাঠামোতে প্রযোজ্য। আমরা আমাদের সাইপ্রেস সেটিংসে নেভিগেট করে যাচাই করতে পারি। এটি একটি ডিফল্ট মান থেকে পরিবর্তিত হয়েছে 4000 থেকে 8000

সেটিংস সাইপ্রেস
সাইপ্রেস সেটিংস ডিফল্ট মান

পরীক্ষার স্ক্রিপ্টের মাধ্যমে ডিফল্ট মান ওভাররাইড করা হচ্ছে

আমরা আমাদের পরীক্ষার স্ক্রিপ্টের মাধ্যমেও ডিফল্ট মানগুলিকে ম্যানিপুলেট করতে পারি। পাশ করার পরিবর্তে cypress.json ফাইল, আমরা এটি আমাদের পরীক্ষা ফাইলে পাস করব।


//Changing the timeout from 4 seconds to 8 seconds
Cypress.config('defaultCommandTimeout',8000)

// Test code
cy.get('#username').type(users.email)
cy.get('#pswd').type(users.password)
cy.get('#login_btn').click()

এইভাবে, আমরা আমাদের পরীক্ষা ফাইলে ডিফল্ট মান ওভাররাইড করতে পারি। যাইহোক, এটি ফ্রেমওয়ার্ক স্তরে কনফিগারেশন পরিবর্তনকে প্রভাবিত করে না। সাইপ্রেস মানগুলিকে অগ্রাধিকার দেয় cypress.json. শেষ পর্যন্ত, এটি বিশ্বব্যাপী কনফিগারেশন গ্রহণ করে।

সাইপ্রেস ফিক্সচার JSON অ্যারে

সরলবর্গীয় চিরহরিৎ বৃক্ষবিশেষ cy.fixture() একটি ফাংশন যা একটি ফাইলে ডেটার একটি নির্দিষ্ট সেট লোড করে। JSON ফাইলে যেকোনো মান বা অ্যারে লোড করতে আমরা ফিক্সচারটিকে JSON হিসাবে ব্যবহার করতে পারি। প্রথমে, আসুন জেনে নেই কিভাবে আমাদের প্রজেক্টে JSON ফাইল অ্যাক্সেস করতে হয়।

আমার JSON ফাইলের দুটি বৈশিষ্ট্য রয়েছে: ব্যবহারকারীর নাম এবং পাসওয়ার্ড। আমার JSON ফাইলের নাম examples.json.

{
"email": "[email protected]",
"password" : test123
}

আমাদের স্পেক ফাইলে, আমরা cy.fixture() কমান্ড এবং এর ধারণা দিয়ে আমাদের ফিক্সচার অ্যাক্সেস করব alias লেখা.

 cy.fixture('example.json').as('example')

 //Using the alias name to this keyword, So we can use globally  
        const userObj = this.userData
//looping our .json data with a new variable users
         cy.get(userData).each((users) => 
         {
              //Write the test code.
        cy.get('#username').type(users.email)
        cy.get('#pswd').type(users.password)
          }       

সাইপ্রেস env JSON

এনভায়রনমেন্ট ভেরিয়েবলগুলি সংস্থাগুলির অনেকগুলি প্রকল্পে ব্যবহৃত হয়। আমরা পরিবেশের ভেরিয়েবল ব্যবহার করি

  • যখন মানগুলি বিভিন্ন মেশিনে গতিশীল হয়
  • যখন আমরা বিভিন্ন পরিবেশে পরীক্ষা করতে চাই যেমন স্টেজিং, টেস্টিং, ডেভেলপমেন্ট, প্রোডাকশন/লাইভ

এই ক্ষেত্রে আমাদের পরিবেশ ভেরিয়েবল সংজ্ঞায়িত করতে হবে। যাইহোক, যদি আমরা একটি নির্দিষ্ট ফাইলে একটি env ভেরিয়েবল সেট করি, তবে এটি অন্যান্য বিশেষ ফাইলগুলিতে প্রতিফলিত হয় না। এর কারণ সাইপ্রেস প্রতিটি বিশেষ ফাইল স্বাধীনভাবে চালায়। এইভাবে, আমাদের আলাদাভাবে env ভেরিয়েবল কনফিগার করতে হবে।

আমরা আমাদের সাইপ্রেস JSON ফাইল থেকে আমাদের পরিবেশ ফাইলগুলি অ্যাক্সেস করি, যেমন, cypress.json ফাইল তাই আমাদের বিকল্পটি বরাদ্দ করতে হবে cypress.json ফাইল এবং এটি আমাদের বিশেষ ফাইল জুড়ে ব্যবহার করে। তাই আমাদের উদাহরণ মধ্যে ডুব দিন.

আমরা আমাদের কনফিগারেশন ফাইলে আমাদের পরিবেশ ভেরিয়েবল সেট করতে পারি বা cypress.env.json ফাইল.

cypress.json ফাইলে পরিবেশ পরিবর্তনশীল সেট করা

আমরা একটি কী-মানের জোড়া দ্বারা env সম্পত্তি সেট করি। কীওয়ার্ডের অধীনে পাস করা যেকোনো মান env এনভায়রনমেন্ট ভেরিয়েবলের অধীনে পড়ে, এবং সাইপ্রেস থেকে আর্গুমেন্ট নেয় env কীওয়ার্ড সিনট্যাক্স নিচের মত দেখায়.

{
  "env": {
    "key1": "value1",
    "key2": "value2"
  }
}

আমরা অ্যাক্সেস করতে চান env আমাদের spec ফাইলে ভেরিয়েবল, আমরা নিচে উল্লিখিত হিসাবে তাদের বরাদ্দ করি।

Cypress.env() //returns both the key1,value1 and key2, value2

Cypress.env(key1) //returns only the value1

আমরা যোগ করব env আমাদের প্রকল্পে কনফিগারেশন এবং আমাদের বিশেষ ফাইলে তাদের অ্যাক্সেস করবে। আমাদের মাঝে cypress.json ফাইল, নিম্নলিখিত কনফিগারেশন যোগ করুন। আমরা আমাদের সেট করছি URL সম্পত্তি এবং তাদের আমাদের URL এ বরাদ্দ করা। এখানে, URL চাবিকাঠি, এবং https://lambdageeks.com/technology/ মান।

{
  "env" : {
      "url" : "https://lambdageeks.com/technology/"
    }
}

যেহেতু আমরা কনফিগারেশন ঘোষণা করেছি, আমরা সেগুলিকে আমাদের বিশেষ ফাইলে অ্যাক্সেস করব। এটি নীচের মত কিছু দেখায়. উপরে উল্লিখিত হিসাবে, আমরা ব্যবহার করা হবে Cypress.env() env ভেরিয়েবল অ্যাক্সেস করার পদ্ধতি।

// type definitions for Cypress object "cy"
// <reference types="cypress" />

describe('Cypress Example ', function () {

    it('accessing the environment variable', function () {

        //Calling URL from cypress.json
        cy.visit(Cypress.env('url'));

    })
})

cypress.env.json ফাইলে পরিবেশ পরিবর্তনশীল সেট করা

আমরা আমাদের সাইপ্রেস env JSON ফাইলে আমাদের পরিবেশ পরিবর্তনশীল নির্ধারণ করতে পারি। এর জন্য, আমাদের একটি নতুন ফাইল তৈরি করা উচিত cypress.env.json প্রকল্পের মূলে। আমরা প্রয়োজন হবে না env কীওয়ার্ড; পরিবর্তে, আমরা কী-মান জোড়া পাস করে সরাসরি তাদের অ্যাক্সেস করতে পারি।

{
    "key1": "value1",
    "key2": "value2"
}

আমাদের তাদের বরাদ্দ কিভাবে তাকান আমাদের cypress.env.json ফাইল.

{
    "url" : "https://lambdageeks.com/",
    "urlTechnology" : "https://lambdageeks.com/technology/"
}
ইউআরএল সাইপ্রেস
cypress.env.json ফাইল তৈরি করা

আপনি উপরে দেখতে পাচ্ছেন, আমরা একটি নতুন ফাইল তৈরি করেছি, cypress.env.json, এবং আমাদের যোগ করা হয়েছে URL বৈশিষ্ট্য এনভায়রনমেন্ট ভেরিয়েবল অ্যাক্সেস করার উপায় পূর্ববর্তী বিভাগে উপরে উল্লিখিত হিসাবে একই হবে.

সাইপ্রেস JSON রিপোর্টার

আমরা জানি, সাইপ্রেস মোচার উপরে নির্মিত; মোচা জন্য নির্মিত যে কোনো রিপোর্টার ব্যবহার করা যেতে পারে. আমরা বিশ্বব্যাপী আমাদের JSON ফাইলে রিপোর্টার কনফিগার করতে পারি cypress.json ফাইল.

reporterspecএখানে, আপনি রিপোর্টার নির্দিষ্ট করতে পারেন যা সাইপ্রেস রানের সময় তৈরি করা উচিত। এটা সেট করা হয় spec ডিফল্ট রিপোর্টার হিসাবে।
reporterOptionsnullএটি প্রতিবেদকের জন্য সমর্থিত বিকল্পগুলি নির্দিষ্ট করার জন্য।

উপরে উল্লিখিত বিকল্পগুলি ডিফল্টরূপে রিপোর্টারে সেট করা কনফিগারেশন। উপরন্তু, দ spec রিপোর্টার ডিফল্টরূপে সেট করা হয়। এইভাবে, রিপোর্টারে, আমরা মোচার সাথে সামঞ্জস্যপূর্ণ যে কোনও রিপোর্টার সেট করতে পারি। reporterOptions আমরা যে প্রতিবেদকের কনফিগার করছি তার উপর নির্ভর করে সমর্থিত বিকল্পগুলি নির্দিষ্ট করা।

আসুন দেখি কিভাবে প্রতিবেদককে কনফিগার করতে হয় আমাদের cypress.json ফাইল.

আমাদের রিপোর্টার হিসাবে মাল্টি রিপোর্টার mochawesome বিবেচনা করা যাক. আমরা প্রথমে প্রতিবেদক ইনস্টল করব এবং তাদের আমাদের সাথে যুক্ত করব cypress.json ফাইল.

npm install --save-dev mocha cypress-multi-reporters mochawesome

কমান্ড লাইনে উপরের কমান্ডটি পাস করে রিপোর্টার ইনস্টল করুন। এখন, আমাদের মধ্যে cypress.json ফাইল, নিম্নলিখিত সম্পত্তি যোগ করুন।

"reporter": "cypress-multi-reporters",
  "reporterOptions": {
      "reportDir": "cypress/reports/multireports",
      "overwrite": false,
      "html": false,
      "json": true
    }

আমরা প্রতিটি বৈশিষ্ট্য বিস্তারিতভাবে বুঝব।

সংবাদদাতা: প্রতিবেদকের নাম যা আমরা আমাদের প্রকল্পে কনফিগার করছি

রিপোর্টডির: ডিরেক্টরি যেখানে আমরা আমাদের ফলাফল আউটপুট করতে যাচ্ছি।

ওভাররাইট: এই পতাকা পূর্ববর্তী প্রতিবেদনগুলিকে ওভাররাইট করার জন্য জিজ্ঞাসা করে৷

এইচটিএমএল: পরীক্ষা শেষ হওয়ার রিপোর্ট তৈরি করে।

JSON: পরীক্ষা শেষ হলে একটি JSON ফাইল তৈরি করতে হবে কিনা।

cypress.json ফাইল
সাইপ্রেস JSON ফাইলে সাইপ্রেস রিপোর্টার

Cypress package-lock.json

সার্জারির  প্যাকেজ-lock.json npm যখন নোড মডিউল বা package.json ফাইল পরিবর্তন করে তখন যেকোন অপারেশনের জন্য ফাইল স্বয়ংক্রিয়ভাবে তৈরি হয়। যখন আমরা কোন অপশন যোগ করি বা আমাদের সাইপ্রেসে কোনো নতুন নির্ভরতা ইনস্টল করুন প্যাকেজ JSON ফাইল, তারপর Cypress package-lock.json স্বয়ংক্রিয়ভাবে আপডেট হয়।

Cypess package.lock JSON ফাইল প্রতিটি প্যাকেজ এবং এর সংস্করণকে চিহ্নিত করে যাতে বিশ্বব্যাপী প্রতিটি এনপিএম ইনস্টলে ইনস্টলগুলি বজায় রাখা এবং আপডেট করা হয়। তাই আমাদের সাইপ্রেস প্যাকেজ JSON ফাইলে, যখন আমরা সংস্করণ আপডেট করি বা কোনো নির্ভরতা যোগ করি, তখন package-lock.jsonও আপডেট হয়ে যায় এবং আমরা এতে কোনো পরিবর্তন করতে চাই না।

প্যাকেজ লক json সাইপ্রেস
Cypress package-lock.json ফাইল