2015-09-29 20 views
6

Tôi có khung công tác tự động hóa sử dụng tác vụ grunt để chạy nhiều tệp spec. Một số được chạy bằng cách sử dụng một bộ được xác định trước, của người khác sử dụng quy ước đặt tên tập tin. Mỗi tệp spec có trung bình một khối "mô tả", mỗi khối thường có nhiều khối "nó".Tóm tắt kết quả thước đo góc trên nhiều tệp thông số

Tôi hiện đang sử dụng hoa nhài-spec-phóng viên mà cho kết quả hữu ích và chi tiết sau mỗi file spec, trông giống như:

------------------------------------ 
[chrome OS X 10.10 #1-78] PID: 1880 
[chrome OS X 10.10 #1-78] Specs: /**/**/jenkins/workspace/Main Suites/tests/User_Management/smoke_student_does_something.js 
[chrome OS X 10.10 #1-78] 
[chrome OS X 10.10 #1-78] Using SauceLabs selenium server at http://******* 
[chrome OS X 10.10 #1-78] Spec started 
[chrome OS X 10.10 #1-78] 
[chrome OS X 10.10 #1-78] 1 A student can link and unlink to another student account 
[chrome OS X 10.10 #1-78]  ✓ can link to another student account (33 secs) 
[chrome OS X 10.10 #1-78]  ✓ can unlink a student account (14 secs) 
[chrome OS X 10.10 #1-78] 
[chrome OS X 10.10 #1-78] Executed 2 of 2 specs SUCCESS in 46 secs. 
[chrome OS X 10.10 #1-78] SauceLabs results available at http://saucelabs.com/jobs/***************** 

[launcher] 5 instance(s) of WebDriver still running 

thước đo mang lại cho tôi một bản tóm tắt giao diện điều khiển đầu ra khá vô dụng sau khi tất cả các báo cáo hoa nhài có tham chiếu đến taskId và danh sách các lỗi vượt qua + lỗi. Đây là những gì tóm tắt thước đo trông giống như:

.... 
[launcher] chrome #1-69 passed 
[launcher] chrome #1-70 failed 1 test(s) 
[launcher] chrome #1-73 passed 
[launcher] chrome #1-71 passed 
[launcher] chrome #1-75 passed 
[launcher] chrome #1-72 passed 
[launcher] chrome #1-79 passed 
[launcher] chrome #1-74 passed 
[launcher] chrome #1-80 passed 
[launcher] chrome #1-81 passed 
[launcher] chrome #1-82 passed 
[launcher] chrome #1-84 passed 
[launcher] chrome #1-83 passed 
[launcher] chrome #1-85 passed 
[launcher] chrome #1-88 passed 
[launcher] chrome #1-87 passed 
[launcher] chrome #1-86 passed 
[launcher] chrome #1-76 passed 
[launcher] chrome #1-89 passed 
[launcher] chrome #1-90 passed 
[launcher] chrome #1-91 passed 
[launcher] chrome #1-92 passed 
[launcher] chrome #1-78 passed 
[launcher] chrome #1-93 passed 
[launcher] chrome #1-95 passed 
[launcher] chrome #1-77 passed 
[launcher] chrome #1-96 passed 
[launcher] chrome #1-94 failed 5 test(s) 
[launcher] overall: 12 failed spec(s) 
[launcher] Process exited with error code 1 
>> 
Warning: Tests failed, protractor exited with code: 1 Use --force to continue. 

Vấn đề của tôi là tôi muốn nhìn thấy một bản tóm tắt của tất cả các đặc tả file, không taskIds, chỉ cho thông số kỹ thuật thất bại, và chỉ sau khi họ đang làm tất cả chạy . MVP sẽ chỉ là tên tệp spec không thành công trong danh sách hoặc được ghi vào tệp ở định dạng dễ đọc (xml, html, v.v.). Lần lặp tiếp theo tôi sẽ có mô tả khối "mô tả" và "nó", mã lỗi và liên kết saucelabs bên cạnh mỗi lỗi tương tự như trình báo hoa nhài.

Tôi thường có hàng trăm tệp spec trong một công việc và phải lược bỏ tất cả các kết quả riêng lẻ để theo dõi tệp spec nào không thành công (vì tôi cảm thấy bản tóm tắt được tạo tự động nên có thông tin đó). Tôi có nghĩa là phải làm một ctrl + f trên đầu ra giao diện điều khiển cho "thất bại", chỉ để xem thông số kỹ thuật nào đã thất bại. Tôi muốn tránh đi saucelabs cho danh sách thất bại, vì cách thức hoạt động của chúng tôi được tổ chức thông qua Jenkins. Đầu ra bàn điều khiển phải là nguồn/tham chiếu đầu tiên dễ dàng cho danh sách các lỗi khi công việc được thực hiện đang chạy.

Phạm vi của mỗi bên thứ ba của bên thứ ba dường như chỉ đi lên đến cấp tệp cụ thể. Sau khi mỗi tập tin spec được thực thi, nó báo cáo, sau đó tiếp tục với tệp tiếp theo ghi đè báo cáo trước đó. Tôi mở báo cáo HTML hoặc XML và nó luôn có một kết quả của tệp spec. Tôi dường như không thể mang bất kỳ thông tin nào vào bản tóm tắt cho nhiều tệp spec. Tôi đã tinh chỉnh các "hợp nhất (Tất cả)" cài đặt, và không ai dường như xây dựng một báo cáo cho tất cả các tập tin spec. Họ dường như chỉ xem xét một tập tin tại một thời điểm.

tôi đã thử nghiệm với các phóng viên sau đây:

nhài-phóng

nhài-spec-phóng

protractor-jasmine2-html-phóng

nhài-json-test-phóng

Tôi đã có thể thao tác mã Protractor "reportSummary" trực tiếp để cung cấp cho tôi hầu hết những gì tôi muốn (ngoại trừ liên kết saucelabs), nhưng điều này không lý tưởng vì tôi phải thuyết phục họ chấp nhận nó. Dưới đây là tóm tắt của tôi trông giống như:

******************** 
* FAILED SPEC(S) * 
******************** 

/Playground/Test_Spec_2.js failed 2 test(s) 
    can log in once 
     FAILURE: Expected false to be true, 'Didn't see home page'. 
     FAILURE: Expected false to be true, 'Didn't see link'. 
    can log in twice 
     PASSED 
    can log in thrice 
     FAILURE: Expected false to be true, 'Didn't see home page'. 

/Playground/Test_Spec_3.js failed 1 test(s) 
    can login 
     FAILURE: Expected false to be true, 'Didn't see home page'. 

******************** 
*  SUMMARY  * 
******************** 
overall: 2/4 failed spec(s) 
******************** 

Tôi có thiếu thứ gì đó khi sử dụng các trình báo hoa nhài này không? Khung làm việc của tôi không được thiết kế để làm việc với các phóng viên theo cách tôi muốn? Tôi có nên thuyết phục các nhân vật nam châm chọc lên phóng viên tóm tắt của họ với một số lựa chọn không?

+0

Tôi nghĩ rằng đặt cược tốt nhất của bạn có thể là thực hiện yêu cầu kéo trên một trong các trình báo cáo đó cho các tùy chọn định dạng mà bạn muốn. Tôi nghi ngờ rằng bạn sẽ thuyết phục @Jmr thực hiện loại thay đổi này cho bạn. – MBielski

Trả lời

0

Bạn có thể tham gia tất cả các báo cáo sau khi tất cả các thử nghiệm của bạn đã chạy.Chỉ cần chắc chắn rằng bạn có tất cả các bài kiểm tra bạn muốn bên trong cùng một thư mục

return browser.getCapabilities().then(function (caps) { 
     var sessionId = caps.get('webdriver.remote.sessionid'); 
     var date = dateMethods.getCurrentDate(); 
     var folder = 'test-results/reports-' + date; 
     jasmine.getEnv().addReporter(new yourReporter({ 
      savePath: folder + '/report' + '-' + sessionId.substr(0, 5) 
     })); 
    }); 

Sau đó, bạn có thể tham gia cùng họ và xóa các thư mục (sử dụng "fs" mô-đun hoặc một cái gì đó như thế) hoặc đổi tên nó như vậy mỗi khi bạn chạy bạn tạo một thư mục mới

0

tôi đang sử dụng phóng viên này: https://www.npmjs.com/package/protractor-jasmine2-screenshot-reporter tôi có báo cáo đầy đủ cho tất cả các file đặc tả hàng ngày với mã này trong file spec của tôi

var HtmlScreenshotReporter = require(process.env['USERPROFILE'] + '/node_modules/protractor-jasmine2-screenshot-reporter'); 
var utils = require('../util/utils.js'); 
var reporter = new HtmlScreenshotReporter({ 
dest: 'target/screenshots_'+ utils.returnToday("_"), 
filename: 'AutoTestRun-report.html' 
}); 

beforeLaunch: function() { 
    return new Promise(function(resolve){ 
     reporter.beforeLaunch(resolve); 
    }); 
    }, 
onPrepare: function() { 
    jasmine.getEnv().addReporter(reporter); 
    browser.driver.manage().window().maximize(); 
    browser.driver.get('https://core.arkcase.dev.armedia.com/arkcase/login'); 
    browser.manage().timeouts().setScriptTimeout(60000); 
}, 

phương pháp tôi đang sử dụng trả lại ngày nay ngày vào tên của màn hình đầu tiên er là:

this.returnToday = function(sign){ 
     var now = new Date(); 
     var day = ("0" + now.getDate()).slice(-2); 
     var month = ("0" + (now.getMonth() + 1)).slice(-2); 
     return today = (month) + sign + (day) + sign + now.getFullYear(); 
    } 
0

Bạn có thể tạo trình báo cáo của riêng mình với thiết kế mà bạn muốn.

Để bạn có thể ghi đè lên các phương pháp hoa nhài sau đây.

self.jasmineStarted = function(summary) { 

}; 

self.suiteStarted = function(suite) { 

}; 

self.specStarted = function(spec) { 

}; 

self.specDone = function(spec) { 

}; 

self.suiteDone = function(suite) { 

}; 

self.jasmineDone = function() { 

}; 

Bạn có thể tạo mẫu của riêng mình với thông tin bạn muốn. Tôi đã tạo một cái cho tôi như dưới đây. enter image description here

Bạn có thể xem qua tài liệu here.

Các vấn đề liên quan