2

我正在使用jasmine-node运行 jasmine 测试。我的项目具有“spec”和“src”文件夹的典型结构。

在我的“HelloSpec.js”文件中,我有:

require('../src/Hello.js');

但是,当我使用以下命令从项目的根文件夹(即“spec”和“src”的父文件夹)运行测试时:

jasmine-node spec/HelloSpec.js

我收到错误,表明require实际上不需要 d 文件。但是,如果我将 require 语句更改为:

require('src/Hello.js');

一切正常。因此,似乎 require 语句正在解析相对于我正在执行测试的文件夹的路径,而不是相对于它们自己的文件位置。但对我来说,它会像那样工作没有意义。

“require”中的相对路径应该如何工作?我需要做些什么来让它们按照我期望的方式工作吗?

谢谢!

4

1 回答 1

1

通常,当前目录的路径以 a 开头./,表示当前目录。你所拥有的src/Hello.js是一个路径搜索,它似乎包括项目文件夹。

我的理解是 require./../相对于需要它的文件,或者至少这一直对我有用。如果它不是从其中任何一个开始,那么它通常会尝试路径搜索。

jasmine-node 不是我的经验所基于的节点。

jasmine-node 可能有不同的路径定义,这就是路径搜索似乎起作用的原因。

没坏就不修?:)

编辑正确答案

问题原来是我粗心。我忘了做module.exports。我解决了这个问题,现在一切都按我预期的方式工作。不知道为什么它在没有任何导出或 module.exports 的情况下以其他方式工作,但它是....无论如何,如果您想编辑您的答案以包含此评论,我会接受它

于 2013-04-26T04:01:41.643 回答