buster.js测试无法加载我的js文件

时间:2013-05-17 08:08:28

标签: node.js buster.js

我从昨天开始就一直在墙上敲门(昨晚只被布鲁斯·斯普林斯汀演唱会打断了......; - )

我正在尝试将一些JS测试添加到现有(Rails)项目中。基本上文件夹结构是这样的:

.
├── app
│   └── assets
│       └── javascripts
│           └── strftime.js
└── spec
    ├── buster.js
    └── javascripts
        └── strftime.test.js

在这个非常简单的例子中,我从这里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 test
Failed requiring ./spec/javascripts/strftime.test.js: Cannot find module '../app/assets/javascripts/lib/strftime.js'

如果我尝试取消注释来源行, buster test 会无声地失败 - 即使我尝试以高调试级别运行它。

我已将整个示例(2 KB)压缩并放在此处,如果有人想尝试尝试一下:http://gehling.dk/b2.zip

更新:我已成功通过提供相对于test-js文件的路径来成功要求js文件:

if (typeof require == "function" && typeof module == "object") {
    buster = require("buster");

    require("../../app/assets/javascripts/strftime.js");
}

但是如果添加sources参数,我仍然会遇到破坏失败的问题。

TIA

/ Carsten

1 个答案:

答案 0 :(得分:2)

在您的压缩buster.js中,您在“来源”元素中引用了一个不存在的lib目录:

var config = exports;

config["Server tests"] = {
    // sources: ["../app/assets/javascripts/lib/strftime.js"],
    tests: ["javascripts/strftime.test.js"],

    env: "node"
};

您还可以在lib中引用相同的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目录中使用spec运行测试时,您将尝试运行某些测试:

$ spec  buster-test
Failure: Date strftime tests %j should return the day of the year
...

请注意,不要忘记使用npm link buster将破坏者链接到您的项目。

下载修复的文件: http://speedyshare.com/FGvCe/b2.tar.gz