- Will send email to people whose case fails
- Usage:
npm install -g sendemailsss
# Send email
sss http://jenkins.lab.rcch.ringcentral.com/view/mThor-TA/view/DevicePool-Android-Daily/job/mThor-Android-Device-Pool-Collection-DailyCI/57/artifact/report/reportForAnaylze.txt
# Print the report with pretty format
ssv http://jenkins.lab.rcch.ringcentral.com/view/mThor-TA/view/DevicePool-Android-Daily/job/mThor-Android-Device-Pool-Collection-DailyCI/57/artifact/report/reportForAnaylze.txt
-
Anaylze for reportForAnaylze.txt, for example: http://jenkins.lab.rcch.ringcentral.com/view/mThor-TA/view/DevicePool-iOS-Daily/job/mThor-IOS-Device-Pool-Collection-DailyCI-All/lastSuccessfulBuild/artifact/report/reportForAnaylze.txt
---New Issue MTR-1026,FAIL,NewIssue before[1]:errorMessage:step error message is: org.openqa.selenium.WebDriverException: create driver failed http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P1-RealDevice-Device-Pool/cucumber-html-reports/260/report-feature_features-30077-MTR-1026-feature.html MTR-1027,FAIL,NewIssue before[1]:errorMessage:step error message is: org.openqa.selenium.WebDriverException: create driver failed http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P1-RealDevice-Device-Pool/cucumber-html-reports/260/report-feature_features-30078-MTR-1027-feature.html MTR-1034,FAIL,NewIssue before[1]:errorMessage:step error message is: org.openqa.selenium.WebDriverException: create driver failed http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P0-RealDevice-Device-Pool/cucumber-html-reports/299/report-feature_features-30130-MTR-1034-feature.html MTR-1035,FAIL,NewIssue before[1]:errorMessage:step error message is: org.openqa.selenium.WebDriverException: create driver failed http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P1-RealDevice-Device-Pool/cucumber-html-reports/260/report-feature_features-30131-MTR-1035-feature.html MTR-1037,FAIL,NewIssue before[1]:errorMessage:step error message is: org.openqa.selenium.WebDriverException: create driver failed http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P1-RealDevice-Device-Pool/cucumber-html-reports/260/report-feature_features-30133-MTR-1037-feature.html MTR-1038,FAIL,NewIssue before[1]:errorMessage:step error message is: org.openqa.selenium.WebDriverException: create driver failed http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P0-RealDevice-Device-Pool/cucumber-html-reports/299/report-feature_features-30134-MTR-1038-feature.html MTR-104,FAIL,NewIssue before[1]:errorMessage:step error message is: org.openqa.selenium.WebDriverException: create driver failed http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P1-RealDevice-Device-Pool/cucumber-html-reports/260/report-feature_features-MTR-104-feature.html MTR-1040,FAIL,NewIssue steps[10]:errorMessage:step error message is: java.lang.AssertionError: expected [false] but found [true] http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P0-RealDevice-Device-Pool/cucumber-html-reports/299/report-feature_features-30136-MTR-1040-feature.html MTR-1053,FAIL,NewIssue before[1]:errorMessage:step error message is: org.openqa.selenium.WebDriverException: create driver failed http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P1-RealDevice-Device-Pool/cucumber-html-reports/260/report-feature_features-30137-MTR-1053-feature.html
-
Get all the failed cases, and their link. For example, From
MTR-1053,FAIL,NewIssue before[1]:errorMessage:step error message is: org.openqa.selenium.WebDriverException: create driver failed http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P1-RealDevice-Device-Pool/cucumber-html-reports/260/report-feature_features-30137-MTR-1053-feature.html
we will use regex to get report url for MTR-1053:http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P1-RealDevice-Device-Pool/cucumber-html-reports/260/report-feature_features-30137-MTR-1053-feature.html
-
Get the content of
http://ci-repository.lab.rcch.ringcentral.com/mThor-ios-HB-Daily-P1-RealDevice-Device-Pool/cucumber-html-reports/260/report-feature_features-30137-MTR-1053-feature.html
, to see whether the author is in it. Will load all authors from app/config.js. For example, From this cucumber report, we can find this case belongs to sherry. -
Collect all the results, send email to them.
app
├── index.js # Entry point
├── anylazeAndPrint.js # ssv logic
├── config.js # Author config
├── fetchCases.js # Fetch cases from reportForAnalyze.txt
├── getOwners.js # Get owners from cucumber report
└── sendEmail.js # Send emails to owners
Why you can use sss and ssv in command line?
npm install -g
will install the bin in package.json tousr/local/bin
, like below:
➜ sendEmail git:(master) ✗ ls -l /usr/local/bin | grep ssv
lrwxr-xr-x 1 elton.zhong admin 43 Nov 29 11:02 ssv -> ../lib/node_modules/sendemailsss/bin/ssv.js
you should specify bin script pathes in the package.json:
"bin": {
"sss": "./bin/sss.js",
"ssv": "./bin/ssv.js"
},
And the bin/ssv.js will be the entry point.