Τι είναι το Cypress Json: Παράδειγμα, Σχήμα, Λεπτομερής Ανάλυση Χεριών

Θα συζητήσουμε τη δομή JSON, παραδείγματα και λεπτομερή πρακτική εμπειρία για να γράψουμε JSON στον κώδικά μας. Αλλά, πρώτα, ας βουτήξουμε στο άρθρο μας!

κυπαρισσα json

Τι είναι το Cypress Json: Παράδειγμα, Σχήμα, Λεπτομερής Ανάλυση Hands-On

Στο προηγούμενο μας άρθρο, συζητήσαμε μεταβλητές και ψευδώνυμα και πώς να γράψουμε την πρώτη δοκιμαστική περίπτωση. Τώρα, θα συζητήσουμε το Cypress JSON και πώς να το ενσωματώσουμε στον κώδικά μας.

Πίνακας περιεχομένων

Αρχείο Cypress JSON

Όπως είδαμε νωρίτερα, την πρώτη φορά που ανοίγουμε το Cypress Test Runner, δημιουργεί ένα κυπαρίσσι.json αρχείο. Αυτό το αρχείο χρησιμοποιείται για να περάσει οποιεσδήποτε τιμές διαμόρφωσης χρειαζόμαστε. Έτσι, πρώτα, θα εξετάσουμε τις επιλογές που μπορούμε να περάσουμε στις δικές μας cypress.json αρχείο.

Προεπιλεγμένες επιλογές JSON

Ορισμένες επιλογές ορίζονται από προεπιλογή στο Cypress. Ωστόσο, μπορούμε να τα προσαρμόσουμε σύμφωνα με το έργο μας. Για να προσδιορίσετε τις προεπιλεγμένες τιμές που έχουν οριστεί από το Cypress, μεταβείτε στο ρυθμίσεις φάκελο στο Cypress Test Runner. Από εκεί, επεκτείνετε την επιλογή Διαμόρφωση για να δείτε τις προεπιλεγμένες επιλογές που έχουν οριστεί από το Cypress.

Αρχείο Cypress JSON

Οι επιλογές είναι οι προεπιλεγμένες διαμορφώσεις που παρέχονται από το Cypress.

{
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 περνώντας τυχόν ορίσματα που είναι συμβατά με το έργο μας. Όπως υποδηλώνει το όνομα, το cypress.json είναι ένα αρχείο JSON, οπότε πρέπει να περάσουμε τα επιχειρήματά μας σε μορφή JSON. Στον κώδικα VS, θα μπορούσατε να δείτε ότι το cypress.json είναι κενό χωρίς να μεταβιβάζονται ορίσματα σε αυτό. Τώρα ας δούμε τις διαφορετικές επιλογές που μπορούμε να περάσουμε στο αρχείο JSON.

Παγκόσμιες επιλογές

Μπορούμε να περάσουμε τις καθολικές επιλογές σε επιχειρήματα που πρέπει να έχουν πρόσβαση σε παγκόσμιο επίπεδο. Για παράδειγμα, στον παρακάτω πίνακα, η στήλη Επιλογές αντιπροσωπεύει τη λέξη -κλειδί που θα περάσουμε στο αρχείο JSON. Η προεπιλογή υποδεικνύει την προεπιλεγμένη τιμή της συγκεκριμένης επιλογής που έχει οριστεί από το Cypress και η Περιγραφή δείχνει την έννοια της επιλογής.

ΕπιλογήΑθέτησηΠεριγραφή
baseUrlnullΜπορούμε να ορίσουμε τη διεύθυνση URL καθολικά αντί να περνά σε κάθε αρχείο. Μπορεί να χρησιμοποιηθεί για cy.visit() or cy.request() εντολές
clientCertificates[]Μπορείτε να χρησιμοποιήσετε αυτήν την επιλογή για τη διαμόρφωση πιστοποιητικών πελάτη σε διεύθυνση URL
env{}Μπορείτε να περάσετε οποιαδήποτε μεταβλητή περιβάλλοντος ως τιμή. Αυτή η επιλογή θα είναι χρήσιμη εάν δοκιμάζουμε την εφαρμογή μας σε διαφορετικά περιβάλλοντα, όπως σκηνοθεσία ή παραγωγή.
watchForFileChangestrueΑυτή η επιλογή ελέγχει εάν το Cypress παρακολουθεί και κάνει επανεκκίνηση δοκιμών για τυχόν αλλαγές αρχείου.
portnullΜπορούμε να δώσουμε τον αριθμό θύρας στη φιλοξενία Κυπαρίσσι. Δημιουργείται μια τυχαία θύρα, αλλά μπορούμε να προσθέσουμε τον αριθμό θύρας που χρειαζόμαστε.
numTestsKeptInMemory50Αυτή η επιλογή είναι ο αριθμός δοκιμαστικών στιγμιότυπων και δεδομένων εντολών που είναι αποθηκευμένα στη μνήμη. Εάν υπάρχει μεγάλη κατανάλωση μνήμης στο πρόγραμμα περιήγησης κατά τη διάρκεια μιας δοκιμαστικής λειτουργίας, μπορούμε να μειώσουμε τον αριθμό.
retries{ "runMode": 0, "openMode": 0 }Αυτή η επιλογή είναι να καθορίσετε τον αριθμό των επαναλαμβανόμενων δοκιμών που αποτυγχάνουν. Μπορούμε να το διαμορφώσουμε ξεχωριστά για κυπαρισσί τρέξιμο   κυπαρίσσι ανοιχτό.
redirectionLimit20Μπορούμε να διαμορφώσουμε το όριο για τον αριθμό των φορών που μπορεί να ανακατευθυνθεί η εφαρμογή πριν εμφανιστεί σφάλμα.
includeShadowDomfalseΗ δυνατότητα πλοήγησης στο εσωτερικό του Shadow DOM για αλληλεπίδραση με στοιχεία. Από προεπιλογή, έχει οριστεί σε false. Εάν η εφαρμογή μας έχει οποιοδήποτε στοιχείο που απαιτεί πλοήγηση σκιώδους ρίζας, μπορείτε να το ορίσετε σε true.

Cypress JSON Timeout

Το Timeout είναι μία από τις πιο σημαντικές έννοιες σε οποιοδήποτε πλαίσιο αυτοματισμού. Το Cypress παρέχει μια ποικιλία επιλογών που βοηθούν στο χειρισμό των χρονικών ορίων στα σενάρια μας. Αρχικά, θα εξετάσουμε τις επιλογές που μπορούμε να διαμορφώσουμε.

ΕπιλογήΑθέτησηΠεριγραφή
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()

Cypress Read JSON Αρχείο

Μερικές φορές, θα χρειαστεί να αλληλεπιδράσουμε με τους φακέλους ή τα αρχεία στο έργο μας. Για να αλληλεπιδράσουμε, πρέπει να ορίσουμε ορισμένες επιλογές στο δικό μας cypress.json αρχείο για χειρισμό των αρχείων. Έτσι, πρώτα, ας εξετάσουμε τις διαθέσιμες επιλογές στη διαμόρφωση φακέλων/ αρχείων.

ΕπιλογήΑθέτησηΠεριγραφή
downloadsFoldercypress/downloadsΑυτή είναι η διαδρομή όπου πραγματοποιείται λήψη και αποθήκευση των αρχείων κατά τη διάρκεια μιας δοκιμαστικής εκτέλεσης
fixturesFoldercypress/fixturesΑυτή είναι η διαδρομή προς το φάκελο που περιέχει τα αρχεία προσαρτήματος. Μπορούμε να περάσουμε false για να απενεργοποιήσετε την αποθήκευση των αρχείων.
ignoreTestFiles*.hot-update.jsΜπορείτε να το περάσετε ως συμβολοσειρά ή συστοιχία καθολικών μοτίβων για να αγνοήσετε τα δοκιμαστικά αρχεία για τη δοκιμαστική εκτέλεση. Ωστόσο, θα εμφανίζεται στα αρχεία δοκιμής.
integrationFoldercypress/integrationΤα αρχεία δοκιμών ενσωμάτωσης αποθηκεύονται σε αυτήν τη διαδρομή προς το φάκελο.
pluginsFilecypress/plugins/index.jsΑυτή η διαδρομή είναι όπου αποθηκεύονται τα πρόσθετα. Μπορείτε να περάσετε το όρισμα ως ψευδές για να απενεργοποιήσετε αυτήν τη διαμόρφωση.
screenshotsFoldercypress/screenshotsΣτιγμιότυπα οθόνης από την εκτέλεση του cy.screenshot() αποτυχία εντολών και δοκιμών κατά τη διάρκεια cypress run αποθηκεύονται σε αυτόν το φάκελο
supportFilecypress/support/index.jsΕδώ αποθηκεύονται τα αρχεία δοκιμής που φορτώνονται πριν από τη δοκιμή. Έχετε την επιλογή να απενεργοποιήσετε περνώντας false
testFiles**/*.*Διαδρομή προς τα αρχεία δοκιμής που πρέπει να φορτωθούν. Είναι είτε μια συμβολοσειρά είτε μια σειρά από καθολικά μοτίβα.
videosFoldercypress/videosΔιαδρομή φακέλου που θα αποθηκεύει βίντεο κατά τη διάρκεια της δοκιμαστικής εκτέλεσης

Στιγμιότυπα οθόνης και Επιλογές βίντεο

Μπορούμε να διαμορφώσουμε τα στιγμιότυπα και τα βίντεό μας στο αρχείο μας cypress.json () και το Cypress μας παρέχει ορισμένες επιλογές για να προσαρμόσουμε τη διαμόρφωσή μας.

ΕπιλογήΑθέτησηΠεριγραφή
screenshotOnRunFailuretrueΕπιλογή για να ορίσετε είτε σε αληθινό είτε σε ψευδές εάν το Cypress τραβάει ένα στιγμιότυπο οθόνης κατά την αποτυχία της δοκιμής όταν τρέχει το κυπαρίσσι. Έχει οριστεί σε true από προεπιλογή
trashAssetsBeforeRunstrueΑυτή η επιλογή είναι να απορρίψετε τα περιουσιακά στοιχεία στο videosFolder, downloadsFolder screenshotsFolder πριν από κάθε cypress run
videoCompression32Αυτή η επιλογή είναι η ποιότητα της συμπίεσης βίντεο που μετριέται στον συντελεστή σταθερού ρυθμού (CRF). Με το πέρασμα false, μπορείτε επίσης να απενεργοποιήσετε αυτήν την επιλογή. Μπορείτε να περάσετε τιμές από 0 έως 51, όπου η χαμηλότερη τιμή δίνει καλύτερη ποιότητα.
videosFoldercypress/videosΟ φάκελος όπου αποθηκεύεται το βίντεο των δοκιμών.
videotrueBoolean value για λήψη του βίντεο της εκτέλεσης δοκιμής με cypress run.
videoUploadOnPassestrueΑυτή η επιλογή είναι να ανεβάσετε τα βίντεο στον Πίνακα ελέγχου όταν περάσουν όλες οι δοκιμαστικές περιπτώσεις σε ένα αρχείο προδιαγραφών.

Viewport και Actionability

Μπορείτε να διαμορφώσετε και να περάσετε τιμές για να αλλάξετε το ύψος και το πλάτος της θύρας προβολής με τις επιλογές που παρέχονται από το Cypress. Οι επιλογές δράσης μπορούν επίσης να διαμορφωθούν.

ΕπιλογήΑθέτησηΠεριγραφή
viewportHeight660Αυτό γίνεται για να παρέχει το προεπιλεγμένο ύψος για την εφαρμογή σε pixel. Μπορούμε να παρακάμψουμε αυτήν την εντολή με cy.viewport()
viewportWidth1000Επιλογή για το πλάτος της θύρας προβολής σε pixel για την εφαρμογή. Μπορεί να παρακαμφθεί με cy.viewport() εντολή.
animationDistanceThreshold5Η τιμή κατωφλίου για την απόσταση που μετριέται σε εικονοστοιχεία όπου ένα στοιχείο πρέπει να υπερβαίνει λαμβάνοντας υπόψη το χρόνο για την εμψύχωση.
waitForAnimationstrueΕπιλογή αναμονής για την ολοκλήρωση της κινούμενης εικόνας από τα στοιχεία πριν εκτελέσετε οποιεσδήποτε εντολές.
scrollBehaviortopΑυτή είναι μια επιλογή θυρίδας προβολής που πρέπει να μεταβείτε σε ένα στοιχείο ακριβώς πριν εκτελέσετε οποιεσδήποτε εντολές. Οι διαθέσιμες επιλογές είναι 'center''top''bottom''nearest', ή false, Όπου το false απενεργοποιεί την κύλιση.

Παράδειγμα Cypress JSON

Νωρίτερα, είδαμε τις διαφορετικές διαμορφώσεις που μπορούμε να περάσουμε στις δικές μας cypress.json αρχείο. Τώρα, θα εξετάσουμε ένα παράδειγμα για το πώς να τα χρησιμοποιήσουμε στο έργο μας.

Παράκαμψη προεπιλεγμένων τιμών στο αρχείο cypress.json

Στον κωδικό VS, ανοίξτε το cypress.json αρχείο. Θα παρακάμψουμε το defaultCommandTimeout εντολή προς 8000.

{
    "defaultCommandTimeout" : 8000
}

Έτσι φαίνεται στο έργο κώδικα VS.

αρχείο cypress.json

Αλλάζοντας το cypress.json αρχείο, ισχύει για ολόκληρο το πλαίσιο. Μπορούμε να επαληθεύσουμε μεταβαίνοντας στις ρυθμίσεις Cypress. Έχει αλλάξει από μια προεπιλεγμένη τιμή του 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 δίνει προτεραιότητα στις τιμές στο cypress.jsonΕ Τέλος, καταλαμβάνει τις παγκόσμιες διαμορφώσεις.

Cypress Fixture JSON Array

Κυπαρίσσι cy.fixture() είναι μια συνάρτηση που φορτώνει ένα σταθερό σύνολο δεδομένων σε ένα αρχείο. Μπορούμε να χρησιμοποιήσουμε το εξάρτημα ως JSON για να φορτώσουμε τυχόν τιμές ή πίνακα στο αρχείο JSON. Αρχικά, ας καταλάβουμε πώς να αποκτήσουμε πρόσβαση στο αρχείο JSON στο έργο μας.

Το αρχείο μου JSON έχει δύο ιδιότητες: όνομα χρήστη και κωδικό πρόσβασης. Το όνομα αρχείου JSON μου είναι examples.json.

{
"email": "test@gmail.com",
"password" : test123
}

Στο αρχείο προδιαγραφών μας, θα έχουμε πρόσβαση στο αρχείο μας με την εντολή cy.fixture () και την έννοια του ψευδώνυμα.

 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 σε ένα αρχείο προδιαγραφών, δεν αντικατοπτρίζεται σε άλλα αρχεία προδιαγραφών. Αυτό συμβαίνει επειδή το Cypress εκτελεί κάθε αρχείο προδιαγραφών ανεξάρτητα. Με αυτόν τον τρόπο, θα χρειαστεί να διαμορφώσουμε τις μεταβλητές env ξεχωριστά.

Έχουμε πρόσβαση στα αρχεία περιβάλλοντος από το αρχείο Cypress JSON, δηλαδή, cypress.json αρχείο. Θα πρέπει λοιπόν να εκχωρήσουμε την επιλογή στο δικό μας cypress.json και το χρησιμοποιήσαμε στο αρχείο προδιαγραφών μας. Ας δούμε λοιπόν το παράδειγμά μας.

Μπορούμε να ορίσουμε τις μεταβλητές περιβάλλοντος στο αρχείο ρυθμίσεων ή cypress.env.json αρχείο.

Ρύθμιση μεταβλητής περιβάλλοντος στο αρχείο cypress.json

Ορίσαμε την ιδιότητα env από ένα ζεύγος κλειδιού-τιμής. Οποιεσδήποτε τιμές περνούν κάτω από τη λέξη -κλειδί env εμπίπτουν σε μεταβλητές περιβάλλοντος και το Cypress παίρνει το επιχείρημα από το 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

Μπορούμε να αντιστοιχίσουμε τη μεταβλητή περιβάλλοντος στο αρχείο μας JPS του κυπαρισσιού. Για αυτό, θα πρέπει να δημιουργήσουμε ένα νέο αρχείο που ονομάζεται 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 Reporter

Όπως γνωρίζουμε, το κυπαρίσσι είναι χτισμένο στην κορυφή του Μόχα. μπορούν να χρησιμοποιηθούν όλοι οι ρεπόρτερ που έχουν κατασκευαστεί για το Mocha. Μπορούμε να διαμορφώσουμε το ρεπόρτερ στο αρχείο JSON μας σε παγκόσμιο επίπεδο στο δικό μας cypress.json αρχείο.

reporterspecΕδώ, μπορείτε να καθορίσετε τον ρεπόρτερ που πρέπει να δημιουργεί κατά τη διάρκεια του κυπαρισσιού. Έχει οριστεί σε spec ως προεπιλεγμένο ρεπόρτερ.
reporterOptionsnullΑυτό γίνεται για να καθορίσετε τις υποστηριζόμενες επιλογές για τον ρεπόρτερ.

Οι επιλογές που αναφέρονται παραπάνω είναι οι ρυθμίσεις παραμέτρων που έχουν οριστεί στο reporter από προεπιλογή. Επιπλέον, το spec ο ρεπόρτερ ρυθμίζεται από προεπιλογή. Έτσι, στον ρεπόρτερ, μπορούμε να ορίσουμε οποιοδήποτε ρεπόρτερ είναι συμβατό με το Mocha. reporterOptions είναι να καθορίσετε τις υποστηριζόμενες επιλογές ανάλογα με τον ρεπόρτερ που διαμορφώνουμε.

Ας δούμε πώς να διαμορφώσετε τον ρεπόρτερ στο δικό μας cypress.json αρχείο.

Ας θεωρήσουμε τον πολυ -ρεπόρτερ μοχθηρό ως ρεπόρτερ μας. Θα εγκαταστήσουμε πρώτα τον ρεπόρτερ και θα τον προσθέσουμε στον δικό μας 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
    }

Θα κατανοήσουμε λεπτομερώς κάθε ιδιότητα.

δημοσιογράφος: Το όνομα του ρεπόρτερ που ρυθμίζουμε στο έργο μας

reportDir: Ο κατάλογος όπου πρόκειται να εξάγουμε τα αποτελέσματά μας.

αντικαθιστά: Αυτή η σημαία ζητά αντικατάσταση των προηγούμενων αναφορών.

html: Δημιουργεί την αναφορά για την ολοκλήρωση της δοκιμής.

json: Αν θα δημιουργηθεί ένα αρχείο JSON με την ολοκλήρωση της δοκιμής.

Κυπαρίσσι δημοσιογράφος στο αρχείο κυπαρισσιών JSON

Κυπαρίσσι packet-lock.json

Η pack-lock.json το αρχείο δημιουργείται αυτόματα για οποιεσδήποτε λειτουργίες όταν το npm τροποποιεί τις μονάδες κόμβου ή το αρχείο package.json. Όταν προσθέτουμε οποιεσδήποτε επιλογές ή εγκαθιστούμε τυχόν νέες εξαρτήσεις στο αρχείο JSON πακέτου Cypress, τότε το Cypress package-lock.json ενημερώνεται αυτόματα.

Πακέτο Cypess.lock JSON Το αρχείο εντοπίζει κάθε πακέτο και την έκδοσή του, έτσι ώστε οι εγκαταστάσεις να διατηρούνται και να ενημερώνονται σε κάθε εγκατάσταση npm παγκοσμίως. Έτσι, στο πακέτο μας Cypress JSON, όταν ενημερώνουμε την έκδοση ή προσθέτουμε οποιαδήποτε εξάρτηση, το pack-lock.json ενημερώνεται επίσης και δεν θέλουμε να κάνουμε καμία αλλαγή σε αυτό.

Cypress package-lock.json αρχείο

Σχετικά με την Aishwarya Lakshmi

Είμαι ενθουσιώδης των δοκιμών και έχω σχεδόν 2+ χρόνια εμπειρίας στον τομέα των δοκιμών. Είμαι παθιασμένος με τις δοκιμές και μου αρέσει να εξερευνώ νέα πράγματα στον τομέα μου και να τα μοιράζομαι με τους συναδέλφους μου. Μου αρέσει να γράφω blogs στον ελεύθερο χρόνο μου με τον απλούστερο αλλά αποτελεσματικό τρόπο. Ως υπεύθυνος δοκιμών, θέλω να έχω τα πράγματα στην τελειότητα, οπότε εύχομαι στους αναγνώστες μου να έχουν την τέλεια κατανόηση της τεχνολογίας. Ενημερώνομαι με τις νέες τεχνολογίες που σχετίζονται με τις δοκιμές και αφιερώνω χρόνο για να τις κατανοήσω Είμαι στην ευχάριστη θέση να βοηθήσω τους μαθητές να κατανοήσουν τις έννοιες στις δοκιμές.
Ας συνδεθούμε μέσω του LinkedIn - https://www.linkedin.com/in/aishwarya-lakshmi-n-46903217a

Lambda Geeks