2013-03-28 18 views
19

Tôi đang cố gắng để có được thiết lập với các unit test cho các kịch bản ứng dụng google, và tôi thấy hai dự án:cách đơn vị thử nghiệm các tập lệnh ứng dụng google?

https://code.google.com/p/gas-unit/ https://code.google.com/p/gasunit/

Vì vậy, tôi đang bối rối để sử dụng :-)

Tôi đã có một bước đi với gasunit không có dấu gạch nối, dường như mong đợi rằng kịch bản được nhúng trong một bảng tính, mà tôi không rõ ràng về cách làm ... và các kịch bản tôi muốn thử nghiệm là các kịch bản dựa trên web chứ không phải bảng tính những người

Tôi ha d sự kiện khác may mắn thử nghiệm hyphenated khí đơn vị, trong đó quản lý để gửi cho tôi cả một lượng email của thử nghiệm và tạo ra một trang kết quả vào trang web google của tôi:

https://sites.google.com/site/testappscript2/TestResults

vì vậy tôi sẽ có khí đốt đơn vị cho thời điểm này, nhưng tôi thực sự muốn thấy một số khung kiểm tra chính thức được kết hợp bởi Google. Đặc biệt tôi muốn tìm một số cách để có được các kịch bản này được chạy với một số tần số để gửi cho tôi kết quả. Tôi cũng muốn nhận được một số BDD; thấy bài viết khác của tôi:

How to get Cucumber/Capybara/Mechanize to work against external non-rails site how to use capybara has_text

Hãy đến trên Google, bạn nổi tiếng có "Thử nghiệm Rocks, Debugging Sucks" trong tất cả các phòng tắm của bạn? Làm thế nào về hỗ trợ thử nghiệm tốt hơn cho Google Apps Scripts?

Trả lời

13

Bạn có thể dùng thử QUnit for Google Apps Script. Đây là patch dành cho QUnit được chuyển thành thư viện Google Apps Script với API docs. Tất cả những gì bạn cần là một dự án kịch bản nhập một thư viện QUnit (ví dụ với một khóa dự án MxL38OxqIK-B73jyDTvCe-OBao7QLBR4j) và có hàm doGet cấu hình QUnit bằng cách sử dụng các tham số URL và tùy chọn với cài đặt của riêng bạn, tải một hàm chạy thử nghiệm của bạn, và cuối cùng trả về QUnit.getHtml(). Dưới đây là một ví dụ:

function doGet(e) { 
    QUnit.urlParams(e.parameter); 
    QUnit.config({ title: "Unit tests for my project" }); 
    QUnit.load(myTests); 
    return QUnit.getHtml(); 
}; 

// Imports the following functions: 
// ok, equal, notEqual, deepEqual, notDeepEqual, strictEqual, 
// notStrictEqual, throws, module, test, asyncTest, expect 
QUnit.helpers(this); 

function myTests() { 
    module("dummy module"); 

    test("dummy test", 1, function() { 
    ok(true); 
    }); 
} 

Sau đó ủy quyền cho kịch bản, lưu một phiên bản của nó, công bố các dự án kịch bản ("Triển khai như ứng dụng web") và đi đến URL thử nghiệm ("mã mới nhất") với trình duyệt của bạn . Các bài kiểm tra của bạn sẽ được chạy và kết quả sẽ được hiển thị qua HtmlService. Bạn có thể nhấp một lần vào chúng để xem các xác nhận của chúng, nhưng khi viết điều này, có thể bạn sẽ không thể làm như vậy trong Firefox 20 và 21 do Caja issue 1688.

+1

Hướng dẫn tuyệt vời tại đây, trong 'Sử dụng ví dụ': https://github.com/simula-innovation/qunit/tree/gas/gas – mooreds

+0

Lưu ý rằng nếu bạn đang triển khai ứng dụng web thông qua tập lệnh ứng dụng google, bạn sẽ phải chuyển đổi tên hàm doGet qua lại. – mooreds

2

Tôi đã tạo đơn vị gas (https://code.google.com/p/gas-unit/) và đã dành một chút thời gian trong vài ngày qua để làm sạch các ví dụ và thêm nhân tố thử nghiệm HTML.

Tôi đã tự mình sử dụng nó cho một số thao tác bảng tính mà tôi đã thực hiện với sự thành công hợp lý. Tôi cũng đã sử dụng Jasmine cho các khách hàng không phải của GAS làm việc và thực sự rất thích điều đó. Tôi nhớ khả năng của đơn vị gas để dễ dàng tạo ra các spys và tôi thích phong cách BDD của việc viết đặc tả.

đơn vị khí là một bài tập học tập tuyệt vời cho tôi và nó hoạt động mặc dù có thể có những vấn đề chưa được khám phá với phạm vi và đóng cửa - đây là lần đầu tiên tôi thực hiện các thao tác ngoài thao tác DOM.

Tôi nghĩ rằng tương lai để thử nghiệm trong GAS phải là với một cổng QUnit (như Adam gợi ý) hoặc Jasmine.Tôi đã nhanh chóng xem xét những gì nó sẽ đưa đến cảng Jasmine nhưng vẫn chưa thể tìm ra thời gian để giải quyết nó.

+0

Tôi đã chuyển các bài kiểm tra của tôi từ đơn vị khí đến QUnit cho GAS tối nay là tương đối không đau và tôi đã nhận được lợi ích từ các tính năng bổ sung của QUnit. Cảm ơn Adam và những người đóng góp khác. Cũng tìm thấy Á hậu hoa nhài [link] (https://github.com/tyskdm/rajah) mà dường như làm việc nhưng có thể là thử nghiệm nhiều hơn nhưng một để xem. –

+0

@adam Xem vấn đề tôi đã nêu ra về việc không thể sử dụng trình gỡ rối [ở đây] (https://github.com/simula-innovation/qunit/issues/2) –

4

Tôi vừa viết một khung kiểm tra khác có tên GasT để phát triển tiện ích bổ sung bảng tính google của tôi & kiểm tra.

GasT là khung kiểm tra tuân thủ TAP cho Google Apps Script. Nó cung cấp một cách đơn giản để xác minh rằng các chương trình GAS bạn viết hành xử như mong đợi. https://github.com/zixia/gast

Mục tiêu của tôi là lấy một công cụ nhấn đơn giản như băng (cho javascript) hoặc dơi (để bash). định dạng của bộ thử nghiệm khá rõ ràng:

var gastLibUrl = 'https://raw.githubusercontent.com/zixia/gast/master/src/gas-tap-lib.js' 
eval(UrlFetchApp.fetch(gastLibUrl).getContentText()) 

var test = GasTap.setPrintDriver('Logger') 

function gast() { 

    test('do calculation right', function (t) {  
    var i = 3 + 4 
    t.equal(i, 7, 'I can calc 3 + 4 = 7') 
    }) 

    test('Spreadsheet exist', function (t) { 
    var ss = SpreadsheetApp.openById('1TBJpvlW3WWney4rk1yW5N9bAP8dOMkWxI97dOtco-fc') 
    t.ok(ss, 'I can open spreadsheet') 
    }) 

    test.finish() 
} 

Hy vọng một người nào đó sẽ thích nó. :)

có một phiên bản trực tuyến, bạn có thể đi để có một cái nhìn vào nó ở đây: https://docs.google.com/spreadsheets/d/19M2DY3hunU6tDQFX5buJmZ_f3E8VFmlqAtodyC-J8Ag/edit#gid=0&vpid=A1

GasT - Google Apps Script Testing-framework, Test Anything Protocol compatible

+0

Công cụ này rất minh bạch, nhẹ nhàng và đơn giản. Mát mẻ! – oshliaer

1

Hiện nay, một gói node-google-apps-script cho phép sử dụng gói JavaScript chuẩn và tự động kiểm tra dụng cụ.

  1. npm install -g node-google-apps-script.
  2. Đi qua authorization steps để cung cấp cho khách hàng bí mật cho phép tải lên và nhập dự án Apps Script.
  3. Sử dụng gulp hoặc grunt hoặc bất kỳ thứ gì bạn sử dụng để thử nghiệm chạy các dự án JavaScript bình thường.

Có sẵn official Google sample có sử dụng quy trình làm việc này.

Xem Google Apps Developer Blog post announcement để biết thêm chi tiết.

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