在jsTestDriver中使用闭包库

我正在通过编写一个简单的JavaScript游戏来学习谷歌关闭工具。 我无法弄清楚如何设置jsTestDriver,以便它可以在关闭库中正常工作。

具体来说:我想使用goog.require机制来包含任何附加的JavaScript文件,而不必手动将它们全部添加到配置文件中。

遵循meyertee的建议,我制作了一个简单的脚本来自动将配置文件写入配置文件

#!/bin/bash
cp tests/jsTestDriver.conf.proto tests/jsTestDriver.conf
libs/closure-library/closure/bin/build/closurebuilder.py --root="./libs/closure-library" --root="./js" --namespace="lds" | sed "s#^#  - ../#" >> tests/jsTestDriver.conf

tests / jsTestDriver.conf.proto文件是一个简单的模板:

test:
  - "*.js"
load:
  - ../libs/knockout-2.1.0.js
# Crucial, the load key needs to be last, and this comment must be followed by a newline.

这是一个非常脆弱的脚本,但希望有人(除了我)会觉得它有用。


你可以通过让Closure编译生成一个清单文件来半自动地执行它,它将以正确的依赖顺序输出所有文件。 然后,您可以将该文件转换为相对路径并将其粘贴到JsTestDriver配置文件中。 我就是这么做的。
你甚至可以编写一个自动完成这个转换的脚本。

这是相关的编译器参数:

--output_manifest manifest.MF

关于Closure Compiler的Google Code Wiki有一些细节

编辑:还有一些Python脚本可以帮助你计算依赖关系。 你可以使用calcdeps.py或者closbuilder.py来生成一个清单文件,它甚至包含了你的代码所不需要的文件。


由于JsTestDriver没有遵循用goog.provide()goog.require()声明依赖关系的Closure Library约定, goog.provide()最好的选择可能是meyertee的解决方案。

但是,Closure库包含它自己的测试框架。 看到:

  • 使用闭包框架进行测试驱动开发
  • 声明API
  • 链接地址: http://www.djcxy.com/p/60085.html

    上一篇: Using closure library with jsTestDriver

    下一篇: How can I add a filter to a SVG object in JavaScript?