unit-testing - 在 jsTestDriver 中使用闭包库

标签 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

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 Compile 生成一个 list 文件来半自动地执行此操作,该文件将以正确的依赖顺序输出所有文件。然后,您可以将该文件转换为相对路径并将它们粘贴到 JsTestDriver 配置文件中。我就是这样做的。
您甚至可以编写一个脚本来自动执行此转换。

这是相关的编译器参数:

--output_manifest manifest.MF

Closure Compiler's Google Code Wiki上有一些细节

编辑:
还有一些Python scripts帮助您计算依赖项。您可以使用 calcdeps.py 或closurebuilder.py 生成 list 文件,其中甚至包括您的代码“不需要”的文件。

关于unit-testing - 在 jsTestDriver 中使用闭包库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856785/

相关文章:

php - PHP 应用程序的单元、集成和系统测试

使用泛型的 C# 存储库

c# - 如何在 C# 单元测试中涵盖图像转换?

unit-testing - 我应该如何结合 ReSharper 6.1 设置 QUnit

singleton - 对于带有参数的构造函数,goog.addSingletonGetter() 是否有变体?

javascript - 如何将 wro4j 与 Closure 库和编译器一起使用?

JavaScript Closure - 监听类中所有元素的事件

javascript - 从 ANT 将命令行参数传递给 jstestdriver JAR?

javascript - "namespace is undefined"使用jsTestDriver、Idea 9并测试3个测试用例时出现问题。有时它会直接挂起