为什么jasmine-node找不到我的spec文件?

mar*_*sks 7 javascript node.js coffeescript jasmine

我已经使用npm安装了jasmine-node.我的项目的目录结构如下:

|-lib\
   |-taxCalc.js
|-spec\
   |-taxCalc.spec.coffee
   |-taxCalc.spec.js
|-src\
   |-taxCalc.coffee
Run Code Online (Sandbox Code Playgroud)

当我使用以下命令从for根文件夹运行jasmine-node时(对于CoffeeScript):

jasmine-node --coffee --verbose spec

Finished in 0.015 seconds
0 tests, 0 assertions, 0 failures
Run Code Online (Sandbox Code Playgroud)

如果我运行JavaScript版本也一样.

如果我明确指出spec文件测试运行正常:

jasmine-node --coffee --verbose spec/taxCalc.spec.coffee

Tax calculation
  calculates tax

Finished in 0.009 seconds
1 test, 1 assertion, 0 failures
Run Code Online (Sandbox Code Playgroud)

文档说文件名应该以'spec.js'或'spec.coffee'结尾,所以一切都好看.

PS我在Windows 7上运行.

小智 2

偶然发现了同样的问题,并且阅读 MarisKs 链接太晚了:/ - 但得出了与问题中描述的相同的结论:至少在 Windows 7 上,file.stat.ino 返回始终 0,因此 findit 中的函数 createInodeChecker() /index.js 始终返回 true 并且该文件将被跳过。

最简单的即时修复:将 createInodeChecker 编辑为

function createInodeChecker() {
    var inodes = {};
    return function inodeSeen(inode) {
        if (inode == 0) {
            return false;
        }

        if (inodes[inode]) {
            return true;
        } else {
            inodes[inode] = true;
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

不太好,但你可以使用它。