我正在通过编写一个简单的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.
这是一个非常脆弱的剧本,但希望有人(除了我)会发现它很有用。
答案 0 :(得分:4)
您可以通过让Closure Compile生成清单文件来半自动执行,该文件将以正确的依赖顺序输出所有文件。然后,您可以将该文件转换为相对路径并将其粘贴到JsTestDriver配置文件中。我就是这样做的。
您甚至可以编写一个自动执行此转换的脚本。
这是相关的编译器参数:
--output_manifest manifest.MF
Closure Compiler's Google Code Wiki
有一些细节修改强> 还有一些Python scripts可以帮助您计算依赖关系。您可以使用calcdeps.py或closurebuilder.py生成清单文件,该文件甚至包含您的代码未“必需”的文件。
答案 1 :(得分:0)
由于JsTestDriver未遵循goog.provide()
声明与goog.require()
和{{1}}的依赖关系的约定,因此您的最佳选择可能是Closure Library解决方案。
但是,Closure库包含自己的测试框架。参见: