首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >buster.js测试无法加载我的js-文件

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

Stack Overflow用户
提问于 2013-05-17 08:08:27
回答 1查看 304关注 0票数 3

从昨天起我就一直在胡思乱想(昨晚被布鲁斯·斯普林斯汀的音乐会打断了.;-)

我试图将一些JS测试添加到现有的(Rails)项目中。基本上,文件夹结构如下:

代码语言:javascript
复制
.
├── app
│   └── assets
│       └── javascripts
│           └── strftime.js
└── spec
    ├── buster.js
    └── javascripts
        └── strftime.test.js

在这个非常简单的例子中,我从这里取了一个buster示例,https://gist.github.com/cjohansen/1904218以确保在移动文件之前一切都正常工作。

我的buster.js如下所示:

代码语言:javascript
复制
var config = exports;

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

    env: "node"
};

我尝试修改strftime.test.js的前5行如下:

代码语言:javascript
复制
if (typeof require == "function" && typeof module == "object") {
    buster = require("buster");

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

目前,当我运行buster测试时,我得到了以下信息:

代码语言:javascript
复制
$ 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-文件:

代码语言:javascript
复制
if (typeof require == "function" && typeof module == "object") {
    buster = require("buster");

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

,但是如果我添加了源代码参数.,我仍然会遇到buster失败的问题。

提亚

/卡斯滕

EN

回答 1

Stack Overflow用户

发布于 2014-02-24 17:11:12

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

代码语言:javascript
复制
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更改为如下所示:

代码语言:javascript
复制
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语句更改为:

代码语言:javascript
复制
require("../../app/assets/javascripts/strftime.js");

并且在buster-test dir中运行您的测试时,您将得到试图运行一些测试的buster:

代码语言:javascript
复制
$ 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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16604342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档