Idan manhajarku tana aika email — tabbatarwar rajista, sake saita kalmar sirri, lissafin kuɗi, sanarwa — kana buƙatar gwaje-gwaje na atomatik waɗanda ke tabbatar da cewa waɗannan saƙonnin sun isa a zahiri kuma sun ƙunshi abun ciki daidai. Mun ga ƙungiyoyi da yawa da ke tsallake gwajin email saboda yana jin rikitacce. Ba haka ba ne, kuma wannan jagorar za ta tabbatar.
Babban matsalar gwajin ayyukan email ita ce kana buƙatar akwatin saƙo na gaske, da za a iya isa gare su, da za ka iya karantawa ta hanyar shirye-shirye. Amfani da asusun Gmail na sirri a cikin bututun CI yana da rauni, ba shi da tsaro, kuma ba ya faɗaɗa. Wannan shi ne daidai inda API na email na wucin gadi ke samun wurinsu a cikin tarin gwaji mai inganci.
Saita Yanayin Gwajin Ka Da farko, ɗauki maɓallin API ɗinka daga dashboard na EvilMail. Ajiye shi a matsayin environment variable a cikin tsarin CI ɗinka — kar ka taɓa tura maɓallan API zuwa version control. ``` export EVILMAIL_API_KEY="your_api_key_here" ```
Ƙirƙirar Adireshin Email na Gwaji Kafin kowane gwajin da ake gudanarwa, ƙirƙiri sabon email na wucin gadi: ``` curl -X POST https://evilmail.pro/api/temp-email \ -H 'Content-Type: application/json' \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -d '{"domain": "evilmail.pro", "ttlMinutes": 30}' ```
Amsawar ta haɗa da adireshin email da token na zaman. Yi amfani da adireshin email don yi rajistar asusun gwaji a cikin manhajarka.
Tantance Akwatin Saƙo Bayan ka jawo aikin aika email a cikin manhajarka (rajista, sake saita kalmar sirri, da sauransu), tantance endpoint na akwatin saƙo har sai saƙon ya iso: ``` curl https://evilmail.pro/api/inbox \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" ```
A cikin gwaji na gaske, za ka nannaɗe wannan a cikin madauki na sake gwadawa da iyakar lokaci. Ga misali mai amfani na Python: ``` import requests import time
API_KEY = os.environ['EVILMAIL_API_KEY'] BASE = 'https://evilmail.pro'
def wait_for_email(subject_contains, timeout=60): deadline = time.time() + timeout while time.time() < deadline: r = requests.get(f'{BASE}/api/inbox', headers={'X-API-Key': API_KEY}) messages = r.json().get('data', []) for msg in messages: if subject_contains in msg['subject']: return msg time.sleep(3) raise TimeoutError('Email not received') ```
Haɗawa da Bututun CI/CD Wannan tsarin yana aiki daidai da kowane tsarin CI — GitHub Actions, GitLab CI, Jenkins, CircleCI. Babban ƙa'idar ita ce: kowane gwajin da ake gudanarwa yana samun adireshin wucin gadi na musamman, yana gudanar da tabbatarwarsa, kuma adireshin yana ƙarewa kai-tsaye. Babu rubutun tsaftacewa, babu akwatin saƙo da ake raba da ke cunkushewa, babu gwaje-gwaje marasa tabbas da tsoffin saƙonni daga gudanarwar da ta gabata ke haifarwa.
Matakin aikin GitHub Actions na iya kama wannan: ``` - name: Run email integration tests env: EVILMAIL_API_KEY: ${'{ secrets.EVILMAIL_API_KEY }'} run: pytest tests/email/ -v --timeout=120 ```
Abin da Za Ka Tabbatar Kar ka duba kawai ko saƙo ya iso. Tabbatar da layin batu, adireshin mai aikawa, kasancewar hanyoyin haɗi masu muhimmanci (URL na tabbatarwa, token na sake saitawa), da kuma cewa waɗannan hanyoyin haɗi a zahiri suna kai ga shafuffuka masu inganci. Gwajin email cikakke yana tabbatar da sarƙar duka daga jawo zuwa isarwa zuwa ingancin abun ciki.
Faɗaɗawa zuwa Ɗaruruwan Gwaje-gwaje Don manyan tarin gwaje-gwaje da ke buƙatar adireshin email da yawa a lokaci ɗaya, yi amfani da endpoint na ƙirƙirar asusu don samar da adireshoshi a ƙarƙashin domain ɗinka. Wannan yana ba ka cikakken iko akan sunan sarari kuma yana guje wa duk wata iyakar ƙima a kan endpoint na temp-email: ``` curl -X POST https://evilmail.pro/api/accounts \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -H 'Content-Type: application/json' \ -d '{"email": "[email protected]", "password": "testpass"}' ```
Bayan tarin gwajin ya ƙare, share asusun gwajin a hade: ``` curl -X DELETE https://evilmail.pro/api/accounts \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -H 'Content-Type: application/json' \ -d '{"emails": ["[email protected]"]}' ```
Ƙarshen Magana Gwajin email bai kamata ya zama abin da ke da rauni a cikin tarin gwajin ka ba. Da ingantaccen API na email na wucin gadi, yana zama mai tabbas da aminci kamar kowane gwajin haɗin kai. Tura tare da kwarin gwiwa cewa saƙonnin ka na email suna aiki da gaske.
