在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库包含它自己的测试框架。 看到: