51

Google アプリ スクリプトの単体テストをセットアップしようとしていますが、次の 2 つのプロジェクトが見つかりました。

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

だから私はどれを使うべきか混乱しています:-)

ハイフンなしのガスユニットを試してみましたが、これはスクリプトがスプレッドシートに埋め込まれていることを期待しているようですが、その方法については少し不明です...テストしたいスクリプトは、スプレッドシートではなくWebベースのスクリプトですもの

ハイフンでつながれた Gas-Unit をテストできたのは幸運でした。これにより、テストの電子メール出力が送信され、Google サイトに結果ページが生成されました。

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

そのため、当面はガスユニットを使用しますが、Google によって組み込まれた公式のテスト フレームワークを確認したいと考えています。特に、これらのスクリプトを一定の頻度で実行して結果を送信する方法を見つけたいと考えています。また、BDD を導入したいと考えています。私の他の投稿を参照してください:

Cucumber/Capybara/Mechanize を外部のレール以外のサイトに対して動作 させる方法 カピバラの使用方法 has_text

Google に来てください。すべてのバスルームに「ロックをテストし、問題をデバッグする」ことで有名ですか? Google Apps Scripts のテスト サポートの改善についてはどうですか?

4

6 に答える 6

18

QUnit for Google Apps Script を試すことができます。これはQUnitのパッチであり、 API ドキュメントを使用して Google Apps Script ライブラリに変換されます。

必要なのは、QUnit ライブラリ (たとえば、プロジェクト キーMxL38OxqIK-B73jyDTvCe-OBao7QLBR4jを持つもの) をインポートし、URL パラメーターを使用して QUnit を構成し、オプションで独自の設定を使用して 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);
  });
}

次に、スクリプトを承認し、そのバージョンを保存し、スクリプト プロジェクトを公開し ("Deploy as web app")、ブラウザーでテスト URL ("latest code") に移動します。テストが実行され、結果が HtmlService 経由で表示されます。それらをシングルクリックしてアサーションを表示できますが、これを書いている時点では、 Caja issue 1688により、Firefox 20 および 21 ではおそらくそうすることができません。

于 2013-04-16T10:23:10.073 に答える
9

このclaspツールは、Apps Script プロジェクトをコマンドラインからローカルで開発およびデプロイする機能を提供します。

claspレポから:

  1. npm install -g @google/clasp
  2. Apps Script API を有効にする: https://script.google.com/home/usersettings
  3. ローカルで開発し、claspツールを使用してデプロイします。

プロジェクトを編集するnode-google-apps-scriptことは推奨されていませんclasp

標準の JavaScript パッケージと自動テスト ツールを使用できるnode-google-apps-scriptパッケージがあります。

  1. npm install -g node-google-apps-script.
  2. Apps Script プロジェクトのアップロードとインポートを許可するために、承認手順に従ってクライアント シークレットを提供します。
  3. 通常の JavaScript プロジェクトの実行をテストするために使用するgulporgruntまたは何でも使用してください。

このワークフローを使用する公式の Google サンプルが利用可能です。

詳細については、 Google Apps デベロッパー ブログの投稿のお知らせをご覧ください。

ファイルがダウンロードされたら、名前を変更して TypeScript に変換し.ts.js. TypeScript になったら、avaテストに使用できます。それらを TypeScript に変換すると、ES6 言語機能も使用できるようになります。

于 2016-05-05T17:30:09.223 に答える
2

私はガスユニット ( https://code.google.com/p/gas-unit/ ) を作成し、ここ数日間、例を整理して HTML テストランナーを追加するのに少し時間を費やしました。

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

Gas-Unit は私にとって素晴らしい学習課題であり、スコープとクロージャに未発見の問題があるかもしれませんが、うまくいきます。これは、DOM 操作以外での私の最初の重要な js 演習です。

GAS でのテストの将来は、QUnit (Adam が示唆するように) または Jasmine のポートを使用する必要があると思います。ジャスミンを移植するのに何が必要かをざっと見ましたが、まだそれに取り組む時間を見つけることができませんでした.

于 2013-04-18T13:24:23.447 に答える