2013-03-28 53 views
19

私はGoogleのアプリスクリプトのユニットテストで設定を取得しようとしている、と私は2つのプロジェクトが見つかりました:Google Appsスクリプトのテスト方法を教えてください。

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

だから私は混乱している

:-)使用します私はちょうどスクリプトがスプレッドシートに埋め込まれていることを期待しているように思われる非ハイフン形式のgasunitを使っていましたが、私はやり方については少し不明です。テストしたいスクリプトはスプレッドシートではなくWebベースのスクリプトですもの

私はha Dより幸運私にテストの電子メール出力の両方を送信し、私のGoogleのサイトで結果ページを生成するために管理ハイフネーションされたガス・ユニットを、テスト:

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

ので、私は気にするつもりです私は本当にGoogleが組み込んだ公式のテストフレームワークを見たいと思っています。特に私は、これらのスクリプトをいくつかの頻度で実行して結果を送信する方法を見つけたいと思います。また、私はいくつかのBDDを取得したいです。私の他の記事を参照してください。

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を試すことができます。 QUnitpatchは、API docsというGoogle Appsスクリプトライブラリに変更されています。

QUnitライブラリ(たとえば、プロジェクトキーMxL38OxqIK-B73jyDTvCe-OBao7QLBR4jのもの)をインポートし、URLパラメータを使用してQUnitを構成し、オプションで独自の設定でもdoGetを構成するスクリプトプロジェクトが必要です。テストを実行し、最後に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); 
    }); 
} 

次に、スクリプトを許可することのバージョンを保存し、スクリプトのプロジェクト(「Webアプリケーションとして展開」)を公表し、ブラウザでテストURL(「最新のコード」)にアクセスしてください。テストが実行され、結果はHtmlServiceを介して表示されます。あなたはアサーションを見るためにそれらをシングルクリックすることができますが、これを書いている時点では、おそらくCaja issue 1688のためFirefox 20と21でそれを行うことはできません。

+1

ここでは、「使用例」の説明があります:https://github.com/simula-innovation/qunit/tree/gas/gas – mooreds

+0

Google Appsスクリプトを使用してWebアプリケーションを導入する場合は、 doGet関数名を前後に切り替えます。 – mooreds

2

私はgas-unit(https://code.google.com/p/gas-unit/)を作成し、ここ数日間、サンプルを整理してHTMLテストランナーを追加しました。

私は妥当な成功を収めているいくつかのスプレッドシート操作のためにそれを使っています。私はまた、GAS以外のクライアント側のjs作業にJasmineを使用しており、本当に楽しんでいます。私は簡単にスパイスを作成するためのガスユニットの能力を忘れています。私は仕様書作成のBDDスタイルに賛成です。

ガスユニットは、私にとって大きな学習課題となっているとスコープとクロージャと未知の問題があるかもしれないが、それは動作しません - これは、DOM操作の外に私の最初のjs重要な運動です。

私はガス中のテストのための未来はQUnit(アダムが示唆するように)、またはジャスミンのポートでなければならないと思います。私はジャスミンを港に運ぶのに何が必要かを素早く見ていましたが、まだそれに取り組む時間を見つけることができませんでした。

+0

私は、比較的簡単ではなかったGASのために、ガスユニットからガスをQUnitに移しました。私はすでにQUnitの追加機能を利用しています。アダムと他の貢献者に感謝します。また、このジャスミンランナー[リンク](https://github.com/tyskdm/rajah)が動作しているように見えますが、おそらく実験的ですが、見ている人がいます。 –

+0

@adamデバッガを使用できないということに関して私が提起した問題を参照してください。[こちら](https://github.com/simula-innovation/qunit/issues/2) –

4

Googleのスプレッドシートアドオン開発&のテスト用に、GasTという名前の別のテストフレームワークを書きました。

GasTは、Google Apps Script用のTAP準拠のテストフレームワークです。これは、作成したGASプログラムが期待どおりに動作することを確認する簡単な方法を提供します。 https://github.com/zixia/gast

私の目標は、テープ(javascript用)やコウモリ(bash用)のような簡単なタップツールを手に入れることです。テストスイート形式はかなり明確です:

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

標準のJavaScriptパッケージと自動テストツールを使用してできるようにするnode-google-apps-scriptパッケージが用意されました。

  1. npm install -g node-google-apps-script
  2. authorization stepsを経由して、Apps Scriptプロジェクトのアップロードとインポートを可能にするクライアント秘密情報を提供します。
  3. gulpまたはgruntを使用するか、通常のJavaScriptプロジェクトをテストするために使用してください。

このワークフローを使用するofficial Google sampleがあります。

詳細については、Google Apps Developer Blog post announcementを参照してください。

関連する問題