Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 如何对谷歌应用程序脚本进行单元测试?_Unit Testing_Google Apps Script - Fatal编程技术网

Unit testing 如何对谷歌应用程序脚本进行单元测试?

Unit testing 如何对谷歌应用程序脚本进行单元测试?,unit-testing,google-apps-script,Unit Testing,Google Apps Script,我正在尝试为谷歌应用程序脚本设置单元测试,我发现了两个项目: 所以我不知道该用哪一个:-) 我刚刚尝试了一个未加苯的气体装置,它似乎期望脚本嵌入到电子表格中,我不太清楚如何做。。。我想测试的脚本是基于web的脚本,而不是电子表格脚本 我在测试连字符气体装置时运气更好,它成功地向我发送了测试的电子邮件输出,并在我的谷歌网站上生成了一个结果页面: 所以我现在要讨论gas单元,但我真的很想看到谷歌加入一些官方的测试框架。特别是,我想找到一些方法让这些脚本以一定的频率运行,以向我发送结果。此外,我

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

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

我刚刚尝试了一个未加苯的气体装置,它似乎期望脚本嵌入到电子表格中,我不太清楚如何做。。。我想测试的脚本是基于web的脚本,而不是电子表格脚本

我在测试连字符气体装置时运气更好,它成功地向我发送了测试的电子邮件输出,并在我的谷歌网站上生成了一个结果页面:

所以我现在要讨论gas单元,但我真的很想看到谷歌加入一些官方的测试框架。特别是,我想找到一些方法让这些脚本以一定的频率运行,以向我发送结果。此外,我也很想让一些BDD去;见我的其他帖子:

来吧,谷歌,你所有的浴室都有“测试石头,调试很糟糕”这句名言?如何更好地支持谷歌应用程序脚本的测试

你可以试试。这是一个用于转换为谷歌应用程序脚本库的工具

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

函数doGet(e){
QUnit.urlparms(e.parameter);
config({title:“我的项目的单元测试”});
质量负荷(myTests);
返回QUnit.getHtml();
};
//导入以下函数:
//好,相等,notEqual,deepEqual,notDeepEqual,严格相等,
//非严格相等、抛出、模块、测试、异步测试、预期
帮手(本);
函数myTests(){
模块(“虚拟模块”);
试验(“虚拟试验”,1,功能(){
好(对),;
});
}
然后授权脚本,保存脚本的版本,发布脚本项目(“部署为web应用”),并使用浏览器转到测试URL(“最新代码”)。您的测试将运行,结果将通过HtmlService显示。您可以单击它们来查看它们的断言,但在编写本文时,您可能无法在Firefox 20和21中执行此操作,因为。

我创建了gas unit(),并在过去几天中花费了一些时间整理示例和添加HTML测试运行程序

我自己也在使用它进行一些电子表格操作,并取得了一定的成功。我也一直在使用Jasmine进行非GAS客户端js工作,并且非常喜欢。我怀念在气体部门轻松创建间谍的能力,我喜欢BDD风格的规范编写

gas单元对我来说是一个很好的学习练习,它确实有效,尽管在范围和闭包方面可能存在未发现的问题——这是我在DOM操作之外的第一个重要js练习


我认为未来的天然气测试必须有一个库尼特港(正如亚当所建议的)或茉莉花港。我快速浏览了一下port Jasmine需要做些什么,但还没有找到时间来解决它。

我刚刚为我的google电子表格插件开发和测试编写了另一个名为GasT的测试框架

GasT是一个针对Google应用程序脚本的TAP兼容测试框架。它提供了一种简单的方法来验证您编写的GAS程序是否按预期运行

我的目标是获得一个简单的tap工具,比如磁带(用于javascript)或bats(用于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()
}
希望有人会喜欢。:)

有一个在线版本,您可以在此处查看:

提供了从命令行在本地开发和部署应用程序脚本项目的能力

从:

  • npm安装-g@google/clasp
  • 启用应用程序脚本API:
  • 本地开发并使用
    clasp
    工具进行部署
  • 编辑谷歌应用程序脚本的
    节点
    项目已被弃用,取而代之的是
    clasp

    该软件包允许使用标准JavaScript软件包和自动测试工具

  • npm安装-g node谷歌应用程序脚本
  • 通过提供客户端机密以允许上载和导入应用程序脚本项目
  • 使用
    gulp
    grunt
    或用于测试运行正常JavaScript项目的任何东西
  • 有一个可用的应用程序使用此工作流

    有关更多详细信息,请参阅


    下载文件后,将其重命名为
    .ts
    而不是
    .js
    ,将其转换为TypeScript。一旦它们是TypeScript,就可以使用
    ava
    来测试它们。将它们转换为TypeScript还可以使用ES6语言特性。

    另一个在Google脚本中进行单元测试的库是

    项目编号:MIUhnnCDES0N3YHPEWX9DUtkh30YExdAc

    GSUnit是一个基于JUnit的GoogleApps脚本测试框架 作者:肯特·贝克和爱德华·希亚特


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

    今晚,我将气体测试从气体装置转移到QUnit,这相对来说比较轻松,我已经从QUnit的附加功能中受益。感谢Adam和其他贡献者。还发现了这个jasmine runner,它似乎很有效,但可能更具实验性,但值得注意。@adam看到了我提出的关于无法使用调试器的问题,这里的“示例使用”下有一个很好的说明:请注意,如果您是通过google apps脚本部署webapp,您必须前后切换doGet函数名。TypeError:无法从undefined中读取属性“all”。(第263行,文件“qunit.js”,项目“qunit”)我发现qunit是t