আমরা আমাদের কোডে JSON লেখার জন্য JSON গঠন, উদাহরণ এবং বিস্তারিত হ্যান্ডস-অন অভিজ্ঞতা নিয়ে আলোচনা করব। কিন্তু, প্রথমে, আসুন আমাদের নিবন্ধে ডুব দেওয়া যাক!
সাইপ্রেস জসন কি: উদাহরণ, স্কিমা, বিস্তারিত হ্যান্ডস-অন বিশ্লেষণ
আমাদের আগেরটিতে প্রবন্ধ, আমরা ভেরিয়েবল এবং উপনাম এবং কিভাবে আমাদের প্রথম টেস্ট কেস লিখতে হয় তা নিয়ে আলোচনা করেছি। এখন, আমরা সাইপ্রেস জেএসওএন এবং কীভাবে এটি আমাদের কোডে অন্তর্ভুক্ত করব তা নিয়ে আলোচনা করব।
সুচিপত্র
- সাইপ্রেস JSON ফাইল
- ডিফল্ট JSON বিকল্প
- গ্লোবাল বিকল্প
- সাইপ্রেস JSON সময়সীমা
- সাইপ্রেস JSON ফাইল পড়ুন
- স্ক্রিনশট এবং ভিডিও বিকল্প
- ভিউপোর্ট এবং কর্মক্ষমতা
- সাইপ্রেস JSON উদাহরণ
- সাইপ্রেস ফিক্সচার JSON অ্যারে
- সাইপ্রেস env JSON
- সাইপ্রেস JSON রিপোর্টার
- Cypress package-lock.json
সাইপ্রেস JSON ফাইল
আমরা আগে দেখেছি, প্রথমবার আমরা আমাদের সাইপ্রেস টেস্ট রানার খুলি, এটি একটি তৈরি করে cypress.json ফাইল এই ফাইলটি আমাদের প্রয়োজনীয় যেকোনো কনফিগারেশন মান পাস করতে ব্যবহৃত হয়। তাই প্রথম, আমরা আমাদের মধ্যে পাস করতে পারেন যে বিকল্পগুলি তাকান হবে cypress.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 ফাইলে যে কীওয়ার্ডটি পাস করব তা উপস্থাপন করে; ডিফল্ট সাইপ্রেস দ্বারা সেট করা নির্দিষ্ট বিকল্পের ডিফল্ট মান নির্দেশ করে এবং বিবরণ বিকল্পটির অর্থ নির্দেশ করে।
পছন্দ | ডিফল্ট | বিবরণ |
---|---|---|
baseUrl | null | আমরা প্রতিটি ফাইলে পাস করার পরিবর্তে ইউআরএল বিশ্বব্যাপী সেট করতে পারি। এর জন্য ব্যবহার করা যেতে পারে cy.visit() or cy.request() কমান্ড |
clientCertificates | [] | আপনি URL এর ভিত্তিতে ক্লায়েন্ট সার্টিফিকেট কনফিগার করার জন্য এই বিকল্পটি ব্যবহার করতে পারেন |
env | {} | আপনি মান হিসাবে যে কোনও পরিবেশের ভেরিয়েবল পাস করতে পারেন। এই বিকল্পটি কার্যকর হবে যদি আমরা স্টেজিং বা উৎপাদনের মতো বিভিন্ন পরিবেশে আমাদের অ্যাপ্লিকেশন পরীক্ষা করি। |
watchForFileChanges | true | এই বিকল্পটি সাইপ্রেস ঘড়ি দেখে এবং কোনো ফাইল পরিবর্তন করা হয়েছে কিনা তা পরীক্ষা করে। |
port | null | আমরা সাইপ্রেস হোস্টিং পোর্ট নম্বর পাস করতে পারেন. একটি র্যান্ডম পোর্ট তৈরি করা হয়, কিন্তু আমরা আমাদের প্রয়োজনীয় পোর্ট নম্বর যোগ করতে পারি। |
numTestsKeptInMemory | 50 | এই বিকল্পটি মেমরিতে সংরক্ষিত পরীক্ষার স্ন্যাপশট এবং কমান্ড ডেটার সংখ্যা। একটি পরীক্ষা চালানোর সময় ব্রাউজারে উচ্চ মেমরি খরচ হলে, আমরা সংখ্যা কমাতে পারি। |
retries | { "runMode": 0, "openMode": 0 } | এই বিকল্পটি হল পরীক্ষায় ব্যর্থ হওয়ার জন্য কতবার পুনরায় চেষ্টা করার সংখ্যা নির্দিষ্ট করা। আমরা এটির জন্য আলাদাভাবে কনফিগার করতে পারি সাইপ্রেস রান এবং সাইপ্রাস খোলা. |
redirectionLimit | 20 | একটি ত্রুটি ঘটার আগে অ্যাপ্লিকেশনটি কতবার রিডাইরেক্ট করা যেতে পারে তার জন্য আমরা সীমা কনফিগার করতে পারি। |
includeShadowDom | false | উপাদানগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য ছায়া DOM-এর ভিতরে নেভিগেট করার ক্ষমতা। ডিফল্টরূপে, এটা মিথ্যা সেট করা হয়. আমাদের অ্যাপ্লিকেশানে শ্যাডো রুট নেভিগেশন প্রয়োজন এমন কোনো উপাদান থাকলে, আপনি এটি সেট করতে পারেন true . |
সাইপ্রেস JSON সময়সীমা
যেকোন অটোমেশন ফ্রেমওয়ার্কের মধ্যে টাইমআউট হল অন্যতম গুরুত্বপূর্ণ ধারণা। সাইপ্রেস বিভিন্ন বিকল্প সরবরাহ করে যা আমাদের স্ক্রিপ্টে সময়সীমা পরিচালনা করতে সহায়তা করে। প্রথমত, আমরা কনফিগার করতে পারি এমন বিকল্পগুলি দেখব।
পছন্দ | ডিফল্ট | বিবরণ |
---|---|---|
defaultCommandTimeout | 4000 | এই বিকল্পটি হল DOM এলিমেন্ট-ভিত্তিক কমান্ড লোড হওয়ার জন্য অপেক্ষা করা। এটি মিলিসেকেন্ডে। |
requestTimeout | 5000 | সময়, মিলিসেকেন্ডে, সময় শেষ হওয়ার জন্য cy.wait() কমান্ডের অনুরোধ না হওয়া পর্যন্ত অপেক্ষা করার জন্য। |
responseTimeout | 30000 | এই টাইমআউট হল কমান্ডের একটি সিরিজে প্রতিক্রিয়া হওয়া পর্যন্ত অপেক্ষা করতে হবে যেমন cy.request() , cy.wait() , cy.fixture() , cy.getCookie() , cy.getCookies() , cy.setCookie() , cy.clearCookie() , cy.clearCookies() , এবং cy.screenshot() কমান্ড |
taskTimeout | 60000 | টাইমআউট, মিলিসেকেন্ডে, এর সম্পাদনের জন্য সমাপ্তির জন্য cy.task() হুকুম |
execTimeout | 60000 | মিলিসেকেন্ডে এই সময়টি কার্যকর করার জন্য অপেক্ষা করতে হবে cy.exec() আদেশ,যা সিস্টেম কমান্ডের সমাপ্তি |
pageLoadTimeout | 60000 | এই সময়সীমার জন্য অপেক্ষা করছে page navigation events বা কমান্ড যে ইন্টারঅ্যাক্টপেজ লাইক সহ cy.visit() , cy.go() , cy.reload() |
সাইপ্রেস JSON ফাইল পড়ুন
কখনও কখনও, আমাদের প্রকল্পের ফোল্ডার বা ফাইলগুলির সাথে যোগাযোগ করতে হবে। ইন্টারঅ্যাক্ট করতে, আমাদের নির্দিষ্ট বিকল্পগুলি সেট করতে হবে cypress.json
ফাইল ম্যানিপুলেট করার জন্য ফাইল। সুতরাং, প্রথমে, আমাদের ফোল্ডার/ফাইল কনফিগারেশনে উপলব্ধ বিকল্পগুলি দেখুন।
পছন্দ | ডিফল্ট | বিবরণ |
---|---|---|
downloadsFolder | cypress/downloads | এটি সেই পাথ যেখানে ফাইলগুলি ডাউনলোড করা হয় এবং পরীক্ষা চালানোর সময় সংরক্ষণ করা হয় |
fixturesFolder | cypress/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. | ||
integrationFolder | cypress/integration | ইন্টিগ্রেশন পরীক্ষার ফাইলগুলি ফোল্ডারে এই পাথে সংরক্ষণ করা হয়। |
pluginsFile | cypress/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 | ||
testFiles | **/*.* | পরীক্ষা ফাইলের পাথ যা লোড করতে হবে। এটি হয় একটি স্ট্রিং বা গ্লোবাল প্যাটার্নের অ্যারে। |
videosFolder | cypress/videos | ফোল্ডার পাথ যা পরীক্ষা সম্পাদনের সময় ভিডিও সংরক্ষণ করবে |
স্ক্রিনশট এবং ভিডিও বিকল্প
আমরা আমাদের cypress.json() ফাইলে আমাদের স্ন্যাপশট এবং ভিডিও কনফিগার করতে পারি এবং সাইপ্রেস আমাদের কনফিগারেশন কাস্টমাইজ করার জন্য কিছু বিকল্প প্রদান করে।
পছন্দ | ডিফল্ট | বিবরণ |
---|---|---|
screenshotOnRunFailure | true | সাইপ্রেস চালানোর সময় পরীক্ষা ব্যর্থ হওয়ার সময় সাইপ্রেস একটি স্ক্রিনশট নেয় কিনা তা সত্য বা মিথ্যাতে সেট করার বিকল্প। এটা সেট করা হয় true গতানুগতিক |
trashAssetsBeforeRuns | true | এই বিকল্পটি হল সম্পদ ট্র্যাশ করার জন্য videosFolder , downloadsFolder এবং screenshotsFolder প্রত্যেকের আগে cypress run |
videoCompression | 32 | এই বিকল্পটি হল ভিডিও কম্প্রেশনের গুণমান যা কনস্ট্যান্ট রেট ফ্যাক্টর (CRF) এ পরিমাপ করা হয়। পাশ করে false , আপনি এই বিকল্পটি নিষ্ক্রিয় করতে পারেন। আপনি 0 থেকে 51 পর্যন্ত মান পাস করতে পারেন, যেখানে সর্বনিম্ন মান আরও ভাল মানের দেয়। |
videosFolder | cypress/videos | ফোল্ডার যেখানে পরীক্ষার ভিডিও সংরক্ষণ করা হয়. |
video | true | পরীক্ষা সম্পাদনের ভিডিও ক্যাপচার করার জন্য বুলিয়ান মান cypress run . |
videoUploadOnPasses | true | এই বিকল্পটি হল ভিডিওগুলিকে ড্যাশবোর্ডে আপলোড করার জন্য যখন একটি বিশেষ ফাইলের সমস্ত পরীক্ষার কেস পাস হয়৷ |
ভিউপোর্ট এবং কর্মক্ষমতা
আপনি সাইপ্রেস দ্বারা প্রদত্ত বিকল্পগুলির সাথে ভিউপোর্টের উচ্চতা এবং প্রস্থ পরিবর্তন করতে মানগুলি কনফিগার এবং পাস করতে পারেন। কর্মক্ষমতা বিকল্পগুলিও কনফিগার করা যেতে পারে।
পছন্দ | ডিফল্ট | বিবরণ |
---|---|---|
viewportHeight | 660 | এটি পিক্সেলে অ্যাপ্লিকেশনের জন্য ডিফল্ট উচ্চতা প্রদান করা। আমরা এই কমান্ডটি দিয়ে ওভাররাইড করতে পারি cy.viewport() |
viewportWidth | 1000 | অ্যাপ্লিকেশনের জন্য পিক্সেলে ভিউপোর্ট প্রস্থের বিকল্প। দিয়ে ওভাররাইড করা যাবে cy.viewport() কমান্ড। |
animationDistanceThreshold | 5 | পিক্সেলে পরিমাপ করা দূরত্বের থ্রেশহোল্ড মান যেখানে অ্যানিমেট করার সময় বিবেচনা করে একটি উপাদানকে অতিক্রম করতে হবে। |
waitForAnimations | true | কোনো কমান্ড সম্পাদন করার আগে উপাদানগুলি অ্যানিমেশন সম্পূর্ণ করার জন্য অপেক্ষা করার বিকল্প। |
scrollBehavior | top | এটি একটি ভিউপোর্ট বিকল্প যা কোনো কমান্ড সম্পাদন করার ঠিক আগে একটি উপাদানে স্ক্রোল করতে হবে। উপলব্ধ বিকল্প হয় 'center' , 'top' , 'bottom' , 'nearest' , বা false , যেখানে false স্ক্রলিং নিষ্ক্রিয় করে। |
সাইপ্রেস JSON উদাহরণ
এর আগে, আমরা বিভিন্ন কনফিগারেশন দেখেছি আমরা আমাদের মধ্যে পাস করতে পারি 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": "[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
, এবং আমাদের যোগ করা হয়েছে URL
বৈশিষ্ট্য এনভায়রনমেন্ট ভেরিয়েবল অ্যাক্সেস করার উপায় পূর্ববর্তী বিভাগে উপরে উল্লিখিত হিসাবে একই হবে.
সাইপ্রেস JSON রিপোর্টার
আমরা জানি, সাইপ্রেস মোচার উপরে নির্মিত; মোচা জন্য নির্মিত যে কোনো রিপোর্টার ব্যবহার করা যেতে পারে. আমরা বিশ্বব্যাপী আমাদের JSON ফাইলে রিপোর্টার কনফিগার করতে পারি cypress.json
ফাইল.
reporter | spec | এখানে, আপনি রিপোর্টার নির্দিষ্ট করতে পারেন যা সাইপ্রেস রানের সময় তৈরি করা উচিত। এটা সেট করা হয় spec ডিফল্ট রিপোর্টার হিসাবে। |
reporterOptions | null | এটি প্রতিবেদকের জন্য সমর্থিত বিকল্পগুলি নির্দিষ্ট করার জন্য। |
উপরে উল্লিখিত বিকল্পগুলি ডিফল্টরূপে রিপোর্টারে সেট করা কনফিগারেশন। উপরন্তু, দ 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 package-lock.json
সার্জারির প্যাকেজ-lock.json npm যখন নোড মডিউল বা package.json ফাইল পরিবর্তন করে তখন যেকোন অপারেশনের জন্য ফাইল স্বয়ংক্রিয়ভাবে তৈরি হয়। যখন আমরা কোন অপশন যোগ করি বা আমাদের সাইপ্রেসে কোনো নতুন নির্ভরতা ইনস্টল করুন প্যাকেজ JSON ফাইল, তারপর Cypress package-lock.json স্বয়ংক্রিয়ভাবে আপডেট হয়।
Cypess package.lock JSON ফাইল প্রতিটি প্যাকেজ এবং এর সংস্করণকে চিহ্নিত করে যাতে বিশ্বব্যাপী প্রতিটি এনপিএম ইনস্টলে ইনস্টলগুলি বজায় রাখা এবং আপডেট করা হয়। তাই আমাদের সাইপ্রেস প্যাকেজ JSON ফাইলে, যখন আমরা সংস্করণ আপডেট করি বা কোনো নির্ভরতা যোগ করি, তখন package-lock.jsonও আপডেট হয়ে যায় এবং আমরা এতে কোনো পরিবর্তন করতে চাই না।
হাই...আমি ঐশ্বর্য লক্ষ্মী, আমার B.Tech সম্পন্ন করেছি এবং টেস্টিং ডোমেনে আমার প্রায় 2+ বছরের অভিজ্ঞতা আছে। আমি একজন পরীক্ষার উত্সাহী এবং পরীক্ষার বিষয়ে উত্সাহী এবং আমার ক্ষেত্রের নতুন জিনিসগুলি অন্বেষণ করতে এবং সেগুলি আমার সহকর্মীদের সাথে ভাগ করতে ভালোবাসি। আমি আমার অবসর সময়ে সহজ কিন্তু কার্যকর উপায়ে ব্লগ লিখতে উপভোগ করি। একজন পরীক্ষক হিসেবে, আমি পরিপূর্ণতা পেতে পছন্দ করি, তাই আমি আমার পাঠকদের প্রযুক্তির নিখুঁত উপলব্ধি করতে চাই। আমি পরীক্ষার সাথে সম্পর্কিত নতুন প্রযুক্তিগুলির সাথে নিজেকে আপডেট রাখি এবং সেগুলি বুঝতে সময় ব্যয় করি। শিক্ষার্থীদের পরীক্ষার ধারণা বুঝতে সাহায্য করতে পেরে আমি আনন্দিত।