首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何对google应用程序脚本进行单元测试?

如何对google应用程序脚本进行单元测试?
EN

Stack Overflow用户
提问于 2013-03-28 20:53:19
回答 4查看 18.1K关注 0票数 50

我正在尝试为google应用程序脚本设置单元测试,我发现了两个项目:

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

所以我不知道该用哪一个:-)

我刚刚尝试了一下没有连字符的gasunit,它似乎希望脚本嵌入到电子表格中,但我有点不清楚该怎么做……我要测试的脚本是基于web的脚本,而不是电子表格脚本

我更幸运地测试了带连字符的gas-unit,它成功地向我发送了测试的电子邮件输出,并在我的google网站上生成了一个结果页面:

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

所以目前我打算使用gas-unit,但我真的很希望看到一些官方的测试框架被Google整合进来。特别是,我想找到一些方法,让这些脚本以一定的频率运行,以便将结果发送给我。另外,我也很想得到一些BDD;请参阅我的其他帖子:

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

得了吧,谷歌,你所有的浴室里都有“测试岩石,调试垃圾”?如何对Google Apps Scripts提供更好的测试支持?

EN

回答 4

Stack Overflow用户

发布于 2013-04-16 18:23:10

你可以试试QUnit for Google Apps Script。它是一个用于QUnitpatch,使用API docs将其转换为Google Apps脚本库。

您所需要的只是一个脚本项目,该项目导入一个QUnit库(例如,具有项目键MxL38OxqIK-B73jyDTvCe-OBao7QLBR4j的那个库),并具有一个doGet函数,该函数使用URL值和您自己的设置配置QUnit,加载一个运行测试的函数,最后返回QUnit.getHtml()。下面是一个示例:

代码语言:javascript
复制
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 (“最新代码”)。您的测试将运行,结果将通过HtmlService显示。您可以单击它们来查看它们的断言,但在撰写本文时,由于Caja issue 1688的原因,您可能无法在Firefox20和21中执行此操作。

票数 18
EN

Stack Overflow用户

发布于 2015-12-02 02:15:23

我刚刚为我的google spreadsheet add-on开发和测试编写了另一个名为GasT的测试框架。

GasT是一个适用于Google Apps脚本的TAP兼容测试框架。它提供了一种简单的方法来验证您编写的GAS程序是否按预期运行。https://github.com/huan/gast

我的目标是得到一个简单的点击工具,比如磁带(用于javascript)或蝙蝠(用于bash)。测试套件的格式非常清晰:

代码语言:javascript
复制
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

票数 11
EN

Stack Overflow用户

发布于 2020-08-02 16:22:04

查看QUnitGS2 -一个使用最新版本的QUnit (v2.10.1)的新应用程序脚本库。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15682346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档