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

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

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

আমাদের আগেরটিতে প্রবন্ধ, আমরা ভেরিয়েবল এবং উপনাম নিয়ে আলোচনা করেছি এবং কিভাবে আমাদের প্রথম টেস্ট কেস লিখব। এখন, আমরা Cypress 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 ফরম্যাটে আমাদের আর্গুমেন্ট পাস করতে হবে। আমাদের VS কোডে, আপনি দেখতে পাচ্ছেন যে cypress.json খালি আছে, এতে কোন আর্গুমেন্ট নেই। এখন আসুন আমরা আমাদের JSON ফাইলে বিভিন্ন বিকল্পগুলি দেখতে পারি।

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

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

পছন্দডিফল্টবিবরণ
baseUrlnullআমরা প্রতিটি ফাইলে পাস করার পরিবর্তে বিশ্বব্যাপী ইউআরএল সেট করতে পারি। এর জন্য ব্যবহার করা যেতে পারে cy.visit() or cy.request() কমান্ড
clientCertificates[]আপনি ইউআরএল ভিত্তিতে ক্লায়েন্ট সার্টিফিকেট কনফিগার করার জন্য এই বিকল্পটি ব্যবহার করতে পারেন
env{}আপনি মান হিসাবে যেকোন পরিবেশের ভেরিয়েবল পাস করতে পারেন। এই বিকল্পটি কাজে লাগবে যদি আমরা বিভিন্ন পরিবেশে আমাদের আবেদন পরীক্ষা করে থাকি যেমন মঞ্চায়ন বা উৎপাদন।
watchForFileChangestrueএই বিকল্পটি পরীক্ষা করে যে সাইপ্রাস ঘড়ি দেখে এবং পুনরায় আরম্ভ করে কোন ফাইল পরিবর্তন করা হয়েছে কিনা।
portnullআমরা সাইপ্রেস হোস্টিংয়ে পোর্ট নম্বর পাস করতে পারি। একটি এলোমেলো পোর্ট তৈরি হয়, কিন্তু আমরা আমাদের প্রয়োজনীয় পোর্ট নম্বর যোগ করতে পারি।
numTestsKeptInMemory50এই বিকল্পটি পরীক্ষার স্ন্যাপশট এবং কমান্ড ডেটার সংখ্যা যা মেমরিতে সংরক্ষিত থাকে। যদি একটি পরীক্ষা চালানোর সময় ব্রাউজারে উচ্চ মেমরি খরচ হয়, আমরা সংখ্যাটি কমাতে পারি।
retries{ "runMode": 0, "openMode": 0 }এই বিকল্পটি হল যে পরীক্ষাটি ব্যর্থ হওয়ার জন্য পুনরায় চেষ্টা করার জন্য নির্দিষ্ট সংখ্যা। এর জন্য আমরা আলাদাভাবে কনফিগার করতে পারি সাইপ্রেস রান এবং সাইপ্রেস খোলা.
redirectionLimit20আমরা একটি ত্রুটি হওয়ার আগে অ্যাপ্লিকেশনটি পুন redনির্দেশিত হতে পারে তার জন্য সীমা কনফিগার করতে পারি।
includeShadowDomfalseউপাদানগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য শ্যাডো ডোমের ভিতরে নেভিগেট করার ক্ষমতা। ডিফল্টরূপে, এটি মিথ্যাতে সেট করা আছে। যদি আমাদের অ্যাপ্লিকেশনে শ্যাডো রুট নেভিগেশনের প্রয়োজন এমন কোন উপাদান থাকে, আপনি এটি সেট করতে পারেন 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এই বিকল্পটি কনস্ট্যান্ট রেট ফ্যাক্টর (সিআরএফ) এ পরিমাপ করা ভিডিও কম্প্রেশনের গুণমান। পাশ করে false, আপনি এই বিকল্পটি অক্ষম করতে পারেন। আপনি মান 0 থেকে 51 পর্যন্ত পাস করতে পারেন, যেখানে সর্বনিম্ন মান ভাল মানের দেয়।
videosFoldercypress/videosযে ফোল্ডারে পরীক্ষার ভিডিও সেভ করা আছে।
videotrueবুলিয়ান মান দিয়ে পরীক্ষা চালানোর ভিডিও ক্যাপচার করতে হবে cypress run.
videoUploadOnPassestrueএই বিকল্পটি হল ড্যাশবোর্ডে ভিডিওগুলি আপলোড করা যখন একটি স্পেক ফাইলের সব টেস্ট কেস পাস হয়ে যাচ্ছে।

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

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

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

সাইপ্রাস জেএসওএন উদাহরণ

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

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

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

{
    "defaultCommandTimeout" : 8000
}

আমাদের ভিএস কোড প্রজেক্টে এটি দেখতে কেমন।

সাইপ্রেস.জসন ফাইল

পরিবর্তন করে 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": "test@gmail.com",
"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 ফাইল এবং আমাদের spec ফাইল জুড়ে এটি ব্যবহার। সুতরাং আসুন আমাদের উদাহরণে ডুব দেওয়া যাক।

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

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

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

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

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

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 ফাইল তৈরি করতে হবে কিনা।

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

সাইপ্রাস প্যাকেজ- lock.json

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

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

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