pytest-χρονικού ορίου είναι ένα plugin για py.test που θα τερματίσει δοκιμές μετά από ένα ορισμένο χρονικό όριο & nbsp?. Κατά αυτόν τον τρόπο θα έχετε μια στοίβα χωματερή του όλα τα νήματα εκτελούνται εκείνη τη στιγμή. Αυτό είναι χρήσιμο όταν π.χ. εκτελεί δοκιμές υπό συνεχή ένταξη (CI) server.
Χρήση
Εγκατάσταση μέσω:
Pip εγκαταστήσετε pytest-χρονικού ορίου
και στη συνέχεια να ενεργοποιήσετε το plugin, είτε από τη γραμμή εντολών:
py.test -p χρονικού ορίου
ή πιο εύκολα μέσα από το πρόγραμμα ελέγχου ή conftest.py:
pytest_plugins = "όριο χρόνου"
Μπορείτε να αλλάξετε το χρονικό διάστημα με τη χρήση του --timeout παράμετρος που ορίζει τον αριθμό των δευτερολέπτων.
Πώς λειτουργεί
Αυτό το plugin λειτουργεί σε έναν από τους δύο τρόπους. Αν το σύστημα υποστηρίζει το σήμα SIGALRM ένας συναγερμός θα πρέπει να προγραμματιστεί κατά την εκκίνηση δοκιμές και ακυρώνεται όταν τελειώσει. Αν ο συναγερμός λήγει κατά τη διάρκεια της δοκιμής ο χειριστής του σήματος θα χρησιμοποιήσει pytest.fail () για να διακόψετε τη δοκιμή, αφού αποτελούν αντικείμενο ντάμπινγκ τη στοίβα οποιαδήποτε άλλα θέματα που τρέχουν στο stderr.
Αν το σύστημα δεν υποστηρίζει SIGALRM ή η --nosigalrm επιλογή που χρησιμοποιήθηκε τότε ένα νήμα χρονόμετρο θα χρησιμοποιηθεί αντ 'αυτού. Για άλλη μια φορά, αν το χρονόμετρο αυτό δεν έχει ακυρωθεί πριν από τη λήξη της θα πετάξει τη στοίβα όλα τα νήματα να stderr πριν από την περάτωση της όλης διαδικασίας py.test χρησιμοποιώντας os._exit (1).
Το μειονέκτημα της μεθόδου SIGALRM είναι ότι το σήμα χρησιμοποιείται από το πλαίσιο της δοκιμής. Αν το σήμα αυτό χρησιμοποιείται από τον κώδικα υπό δοκιμή θα πρέπει να χρησιμοποιήσετε την επιλογή --nosigalrm. Ο περιορισμός του νήματος χρονοδιακόπτη είναι, ωστόσο, η επιπλέον επιβάρυνση για τη δημιουργία ενός νήματος για κάθε εκτελεστεί δοκιμή και το γεγονός ότι μετά από ένα χρονικό όριο η όλη διαδικασία έχει σταματήσει και δεν απαιτούνται περαιτέρω δοκιμές που εκτελέστηκαν.
Τι είναι νέα σε αυτή την έκδοση:.
- Προστέθηκε η μεταβλητή PYTEST_TIMEOUT περιβάλλον ως τρόπο καθορισμού του χρονικού ορίου (κλείνει το τεύχος # 2)
- Πιο ευέλικτη επιχείρημα δείκτη ανάλυσης:. Τώρα μπορείτε να καθορίσετε τη μέθοδο χρησιμοποιώντας ένα επιχείρημα θέσης
- Το plugin είναι πλέον ενεργοποιημένη από προεπιλογή. Δεν υπάρχει πλέον η ανάγκη να προσδιοριστούν timeout = 0 στο αρχείο ρυθμίσεων ή στη γραμμή εντολών απλά έτσι ώστε ένας δείκτης θα μπορούσε να λειτουργήσει.
Τι είναι καινούργιο στην έκδοση 0.2:
- Προσθέστε ένα δείκτη για να τροποποιήσετε την καθυστέρηση του χρονικού ορίου χρησιμοποιώντας έναpytest .timeout (Ν) σύνταξη, χάρη στην Laurant Brack για το αρχικό κώδικα.
- Αφήστε το δείκτη του χρονικού ορίου για να επιλέξετε τη μέθοδο του χρονικού ορίου που χρησιμοποιούν το επιχείρημα μέθοδο λέξη-κλειδί.
- Μετονομασία την --nosigalrm επιλογή να --method = νήμα για την υποστήριξη απόδειξη μέλλον για eventlet και gevent. Χάρη στον Ronny Pfannschmidt για την υπόδειξη.
- Προσθήκη χρονικό όριο και timeout_method στοιχεία στο αρχείο ρυθμίσεων, ώστε να μπορείτε να ενεργοποιήσετε και να ρυθμίσετε το plugin χρησιμοποιώντας το αρχείο ini. Χάρη στον Holger Krekel και Ronny Pfannschmidt για τις υποδείξεις.
- Δοκιμασμένο (και σταθερά) για Python 2.6, 2.7 και 3.2.
Απαιτήσεις :
- Python
- py.test
Τα σχόλια δεν βρέθηκε