היי
מחפש איזשהו כלי או פריימוורק שיעזור לי ליצור קובץ תוצאות HTML אינטראקטיבי .
ניסיתי לעבוד עם Unittest, Pytest, Allure אבל בשלושתם כאשר Assert נכשל הטסט נכשל יחד איתו וזה לא מה שאני צריך.
מחפש משהו ידידותי שיאפשר לי להציג
אני חושב שאתה מערבב כאן בין כלי לשיטת עבודה - בוא נתחיל עם הדרישה שכאשר assert נכשל הטסט כולו נכשל. זו שיטת עבודה ותפיסה שמשותפת לכל ספריית טסט שתבחר.
ההיגיון שלה זה שכל Test מייצג שורה בדו״ח בדיקות שאתה הולך לקבל, והשורה הזאת יכולה להיות ״הצלחה״ או ״כישלון״. אין חשיבות ל assert-ים השונים בתוך הטסט. הדבר היחיד שחשוב זה אם הטסט הצליח או נכשל. ה Assert-ים לא מייצגים שלבים. בגלל זה בהרבה מקומות ימליצו לך לשים רק Assert אחד בכל טסט.
אתה יכול לתת דוגמא למה אתה מתכוון כשאתה כותב שלבים? נסה להיות כמה שיותר קונקרטי וכך אוכל לנסות לעזור לך למפות את המושג הזה למשהו שמסתדר טוב עם ספריית הבדיקות
אוקיי
אני בונה מערכת שתריץ טסטים המכילים פרוצדורות, המכילות מס שלבים (ללא תלות של שלב בשלב במקרה של כשלון) למשל:
Test1 :
Procedure1:
1. Verify ....
(some checks)
2. Configure ...
(Configure something)
3. Wait for...
4. Compare - x is greater then 2
5. Something...
6. Something
Procedure2:
1. Check....
2. Something...
3. Compare 1 is greater then 2
4. Something
ובדוח תוצאות נראה כך:
Test1:
Procedure1:
- 1. Verify ..... FAIL
"open log file A.txt"
- "find all lines with 'balbala' "
+ "Check how many times does this line exist"
2. Configure ..... PASS
"configured success with file :" 2.txt
3. Wait for .... PASS
4. Compare 1 is greater then 2 ...... FAIL
"1 is not greater then 2...."
5...... PASS
6...... PASS
Procedure2:
1. Check.... PASS
.........
כאשר בכל שלב יש אפשרות לפירוט נוסף.
אם השלב הראשון מורכב מפרוצדורה א’ והיא קוראת לפרוצדורה ב’ שקוראת לפרוצדורה ג’, בדוח נראה את הפלט של א’ אבל בלחיצה על + ניתן לקבל את הפירוט לב’ ובלחיצה נוספת על + הבא ניתן גם לקבל פירוט לג’. כל הפירוט של התוצאה הוא היררכי.
תוכל להגדיר באמצעות describe את הכותרת של הבדיקה ואז הטסטים השונים יקבלו את ה PASS או FAIL
(ואפשר להוסיף עוד רמות בהיררכיה וככה לקבל חלוקה יותר מפורטת לצעדים)
לא הבנת אותי , אנסה להסביר שוב - אני רוצה שכל טסט יכיל מספר של השוואות ושכל השוואה תציג את התוצאה שלה בנפרד ולא שהטסט יציג את התוצאה הכוללת
לדוגמא :
…
def test_proc_1(self):
with self.subTest("step 1: compare"):
Some Compare: 1 == 0
with self.subTest("step 2: verify"):
Some Compare: 1 == 1
with self.subTest("step 3: check"):
Some Compare: 1 > 0
with self.subTest("step 4: something"):
Some Compare: 1 < 0