我正在尝试为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提供更好的测试支持?
发布于 2013-04-16 18:23:10
你可以试试QUnit for Google Apps Script。它是一个用于QUnit的patch,使用API docs将其转换为Google Apps脚本库。
您所需要的只是一个脚本项目,该项目导入一个QUnit库(例如,具有项目键MxL38OxqIK-B73jyDTvCe-OBao7QLBR4j
的那个库),并具有一个doGet函数,该函数使用URL值和您自己的设置配置QUnit,加载一个运行测试的函数,最后返回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 (“最新代码”)。您的测试将运行,结果将通过HtmlService显示。您可以单击它们来查看它们的断言,但在撰写本文时,由于Caja issue 1688的原因,您可能无法在Firefox20和21中执行此操作。
发布于 2015-12-02 02:15:23
我刚刚为我的google spreadsheet add-on开发和测试编写了另一个名为GasT的测试框架。
GasT是一个适用于Google Apps脚本的TAP兼容测试框架。它提供了一种简单的方法来验证您编写的GAS程序是否按预期运行。https://github.com/huan/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
发布于 2020-08-02 16:22:04
查看QUnitGS2 -一个使用最新版本的QUnit (v2.10.1)的新应用程序脚本库。
https://stackoverflow.com/questions/15682346
复制相似问题