2013-03-28 5 views
19

मैं गूगल एप्लिकेशन स्क्रिप्ट के लिए इकाई परीक्षण के साथ की स्थापना के लिये कोशिश कर रहा हूँ, और मैं दो परियोजनाओं पाया:यूनिट को Google Apps स्क्रिप्ट का परीक्षण कैसे करें?

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

तो मैं :-) उपयोग करने के लिए जो संदेह में हूँ

मुझे अभी भी निर्जलित गैसोनीट के साथ जाना था, ऐसा लगता है कि स्क्रिप्ट एक स्प्रेडशीट में एम्बेडेड है, जो कि मैं कैसे करना चाहता हूं पर थोड़ा अस्पष्ट हूं ... और जिन स्क्रिप्ट्स का मैं परीक्षण करना चाहता हूं वे स्प्रेडशीट की बजाय वेब आधारित स्क्रिप्ट हैं

मैं हा d और भाग्य हाइफन गैस इकाई है, जो मुझे मेरे गूगल साइट में परीक्षण के दोनों एक ई उत्पादन के परिणाम पृष्ठ भेजने के लिए और उत्पन्न करने में कामयाब परीक्षण:

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

तो मैं गैस के साथ करने जा रहा हूँ इस पल के लिए इकाई, लेकिन मैं वास्तव में Google द्वारा शामिल कुछ आधिकारिक परीक्षण ढांचे को देखना चाहता हूं। विशेष रूप से मैं परिणाम भेजने के लिए इन स्क्रिप्ट को कुछ आवृत्ति के साथ चलाने के लिए कुछ रास्ता ढूंढना चाहता हूं। इसके अलावा मुझे कुछ बीडीडी जाना पसंद है; मेरे अन्य पदों देखें:

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

गूगल चलो, तुम मशहूर है अपने सभी बाथरूम में "परीक्षण चट्टानों, डिबगिंग बेकार है"? Google Apps स्क्रिप्ट के लिए बेहतर परीक्षण समर्थन के बारे में कैसे?

उत्तर

13

आप QUnit for Google Apps Script को आजमा सकते हैं। यह QUnitAPI docs के साथ Google Apps स्क्रिप्ट लाइब्रेरी में बदल गया है।

आप सभी की जरूरत है, एक स्क्रिप्ट परियोजना है कि एक QUnit पुस्तकालय (उदाहरण के लिए एक परियोजना कुंजी MxL38OxqIK-B73jyDTvCe-OBao7QLBR4j के साथ) का आयात करता है और एक doGet समारोह है कि QUnit कॉन्फ़िगर URL पैरामीटर और वैकल्पिक रूप से अपनी खुद की सेटिंग्स के साथ भी उपयोग कर रहे है एक समारोह को लोड करता है कि आपके परीक्षण चलाता है, और अंत में QUnit.getHtml() देता है।

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); 
    }); 
} 

फिर स्क्रिप्ट, को अधिकृत इसका एक संस्करण बचाने के लिए, ("वेब अनुप्रयोग के रूप में परिनियोजित") स्क्रिप्ट प्रोजेक्ट प्रकाशित और परीक्षण यूआरएल ("नवीनतम कोड") के लिए जाना आपके ब्राउज़र के साथ: यहाँ एक उदाहरण है । आपके परीक्षण चलाए जाएंगे और परिणाम HtmlService के माध्यम से प्रदर्शित किए जाएंगे। आप उनके दावे को देखने के लिए उन पर एकल-क्लिक कर सकते हैं, लेकिन इसे लिखने के रूप में, शायद आप Caja issue 1688 के कारण फ़ायरफ़ॉक्स 20 और 21 में ऐसा करने में सक्षम नहीं होंगे।

+1

'उदाहरण उपयोग' के तहत यहां महान निर्देश: https://github.com/simula-innovation/qunit/tree/gas/gas – mooreds

+0

ध्यान दें कि यदि आप Google Apps स्क्रिप्ट के माध्यम से वेबपैप को तैनात कर रहे हैं, तो आपको आगे और आगे doGet फ़ंक्शन नाम स्विच करें। – mooreds

2

मैंने गैस-यूनिट (https://code.google.com/p/gas-unit/) बनाया है और पिछले कुछ दिनों में उदाहरणों को पूरा करने और HTML परीक्षण धावक जोड़ने में कुछ समय बिताया है।

मैं इसे कुछ स्प्रेडशीट मैनिपुलेशन के लिए स्वयं उपयोग कर रहा हूं, मैं उचित सफलता के साथ कर रहा हूं। मैं गैर-जीएएस क्लाइंट साइड जेएस काम के लिए जैस्मीन का भी उपयोग कर रहा हूं और वास्तव में इसका आनंद लिया है। मैं आसानी से जासूस बनाने के लिए गैस इकाई में क्षमता को याद करता हूं और मैं विनिर्देश लेखन की बीडीडी शैली का पक्ष लेता हूं।

गैस-यूनिट मेरे लिए एक महान सीखने का अभ्यास रहा है और यह काम करता है हालांकि गुंजाइश और बंद होने के साथ अनदेखा मुद्दे हो सकते हैं - यह मेरा पहला महत्वपूर्ण जेएस डोन मैनिपुलेशन के बाहर व्यायाम है।

मुझे लगता है कि जीएएस में परीक्षण के लिए भविष्य क्विनिट (जैसा कि एडम सुझाव देता है) या जैस्मीन के बंदरगाह के साथ होना चाहिए।मैंने तुरंत जैस्मीन बंदरगाह पर क्या लेना शुरू किया था, लेकिन अभी तक इसका सामना करने में समय नहीं मिला है।

+0

मैंने आज शाम जीएएस के लिए गैस-यूनिट से क्विनीट में अपने परीक्षणों को स्थानांतरित कर दिया है जो अपेक्षाकृत दर्द रहित था और मुझे पहले से ही क्विनीट की अतिरिक्त विशेषताओं से लाभ मिल रहा है। धन्यवाद एडम और अन्य योगदानकर्ता। यह चमेली धावक [लिंक] (https://github.com/tyskdm/rajah) भी पाया जाता है जो काम करता प्रतीत होता है लेकिन संभवतः अधिक प्रयोगात्मक है लेकिन देखने के लिए एक है। –

+0

@adam डीबगर [यहां] (https://github.com/simula-innovation/qunit/issues/2) –

4

मैंने अपने Google स्प्रेडशीट एड-ऑन विकास & परीक्षण के लिए गैसटी नामक एक और परीक्षण ढांचा लिखा है।

गैसटी Google Apps स्क्रिप्ट के लिए एक टीएपी-अनुरूप परीक्षण ढांचा है। यह सत्यापित करने का एक आसान तरीका प्रदान करता है कि आपके द्वारा लिखे गए जीएएस प्रोग्राम अपेक्षित व्यवहार करते हैं। https://github.com/zixia/gast

मेरा लक्ष्य टेप (जावास्क्रिप्ट के लिए) या चमगादड़ (बैश के लिए) जैसे एक साधारण टैप टूल प्राप्त करना है। टेस्ट स्वीट प्रारूप काफी स्पष्ट है:

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() 
} 

आशा कोई इसे पसंद करेंगे। :)

एक ऑनलाइन संस्करण है, आप यहाँ इस पर एक नजर है पर जा सकते हैं: 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

का उपयोग करने में असमर्थ होने के संबंध में उठाए गए मुद्दे को देखें यह टूल बहुत पारदर्शी, हल्का और सरल है। ठंडा! – oshliaer

1

अब मानक जावास्क्रिप्ट संकुल और स्वचालित परीक्षण टूलींग का उपयोग कर अनुमति देने के लिए एक node-google-apps-script पैकेज नहीं है।

  1. npm install -g node-google-apps-script
  2. ऐप्स स्क्रिप्ट परियोजनाओं को अपलोड और आयात करने की अनुमति देने के लिए ग्राहक रहस्य प्रदान करने के लिए authorization steps के माध्यम से जाएं।
  3. gulp या grunt या जो भी आप सामान्य जावास्क्रिप्ट परियोजनाओं को चलाने के परीक्षण के लिए उपयोग करते हैं, का प्रयोग करें।

official Google sample उपलब्ध है जो इस वर्कफ़्लो का उपयोग करता है। अधिक जानकारी के लिए

Google Apps Developer Blog post announcement देखें।

संबंधित मुद्दे