从昨天起我就一直在胡思乱想(昨晚被布鲁斯·斯普林斯汀的音乐会打断了.;-)
我试图将一些JS测试添加到现有的(Rails)项目中。基本上,文件夹结构如下:
.
├── app
│ └── assets
│ └── javascripts
│ └── strftime.js
└── spec
├── buster.js
└── javascripts
└── strftime.test.js在这个非常简单的例子中,我从这里取了一个buster示例,https://gist.github.com/cjohansen/1904218以确保在移动文件之前一切都正常工作。
我的buster.js如下所示:
var config = exports;
config["Server tests"] = {
// sources: ["../app/assets/javascripts/strftime.js"],
tests: ["javascripts/strftime.test.js"],
env: "node"
};我尝试修改strftime.test.js的前5行如下:
if (typeof require == "function" && typeof module == "object") {
buster = require("buster");
require("../app/assets/javascripts/strftime.js");
}目前,当我运行buster测试时,我得到了以下信息:
$ buster test
Failed requiring ./spec/javascripts/strftime.test.js: Cannot find module '../app/assets/javascripts/lib/strftime.js'如果我试图取消对sources行的注释,即使我试图以较高的调试级别运行它,buster测试也会失败。
我已经压缩了整个示例(2KB),并将其放在这里,如果有人想尝试一下:http://gehling.dk/b2.zip
更新:通过提供相对于我的测试-js文件的路径,我成功地要求js-文件:
if (typeof require == "function" && typeof module == "object") {
buster = require("buster");
require("../../app/assets/javascripts/strftime.js");
},但是如果我添加了源代码参数.,我仍然会遇到buster失败的问题。
提亚
/卡斯滕
发布于 2014-02-24 17:11:12
在压缩的buster.js中,您在“lib”元素中引用了一个不存在的lib dir:
var config = exports;
config["Server tests"] = {
// sources: ["../app/assets/javascripts/lib/strftime.js"],
tests: ["javascripts/strftime.test.js"],
env: "node"
};您还在strftime.test.js中引用相同的strftime.test.js目录。
通过将buster.js更改为如下所示:
var config = exports;
config["Server tests"] = {
rootPath: "../",
environment: "node",
sources: ["app/assets/javascripts/strftime.js"],
tests: ["spec/javascripts/strftime.test.js"],
};并通过将strftime.test.js中的require语句更改为:
require("../../app/assets/javascripts/strftime.js");并且在buster-test dir中运行您的测试时,您将得到试图运行一些测试的buster:
$ spec buster-test
Failure: Date strftime tests %j should return the day of the year
...别忘了用npm link buster链接buster到你的项目。
下载固定文件: http://speedyshare.com/FGvCe/b2.tar.gz
https://stackoverflow.com/questions/16604342
复制相似问题