使用带有jsTestDriver的闭包库

Oda*_*ick 7 unit-testing google-closure-library js-test-driver

我正在通过编写一个简单的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
Run Code Online (Sandbox Code Playgroud)

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.
Run Code Online (Sandbox Code Playgroud)

这是一个非常脆弱的脚本,但希望有人(除了我)会发现它很有用.

mey*_*tee 4

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

这是相关的编译器参数:

--output_manifest manifest.MF
Run Code Online (Sandbox Code Playgroud)

Closure Compiler 的 Google Code Wiki上有一些详细信息

编辑: 还有一些Python 脚本可以帮助您计算依赖关系。您可以使用 calcdeps.py 或closurebuilder.py 生成清单文件,其中甚至包括代码未“需要”的文件。