在团队城市运行业力 - “无法找到模块”

时间:2013-10-08 06:54:56

标签: node.js teamcity karma-runner

我是节点的新手。我正在尝试使用nodejs + karma + jasmine在TeamCity上运行javascript测试。

我在本地开发机器和TeamCity上安装了节点。它似乎在两个地方都有效。

我使用npm install karma在本地安装了业力,并使用.\node_modules\.bin\karma.cmd init对其进行了配置。使用.\node_modules\.bin\karma.cmd start --single-run在本地运行测试很好 。我已经检查了整个node_module文件夹。

当我尝试使用运行.\node_modules\.bin\karma.cmd start --single-run的命令行步骤在TeamCity中运行karma时,我得到以下内容:

[08:52:42][Step 6/6] module.js:340
[08:52:42][Step 6/6]     throw err;
[08:52:42][Step 6/6]           ^
[08:52:42][Step 6/6] Error: Cannot find module 'D:\tc_a1\work\c4418f0fd0a402a7\node_modules\karma\bin\karma'
[08:52:42][Step 6/6]     at Function.Module._resolveFilename (module.js:338:15)
[08:52:42][Step 6/6]     at Function.Module._load (module.js:280:25)
[08:52:42][Step 6/6]     at Function.Module.runMain (module.js:497:10)
[08:52:42][Step 6/6]     at startup (node.js:119:16)
[08:52:42][Step 6/6]     at node.js:901:3

我已尝试过run命令的几种排列,但它们都会产生相同的输出。

如何让它发挥作用?

2 个答案:

答案 0 :(得分:0)

D:\tc_a1\work\c4418f0fd0a402a7上的TeamCity代理的目录结构是什么样的?您的node_modules文件夹是否存在?

我们让它在TeamCity中运行,并将Karma复制到用户配置文件之外的文件夹(全局安装的npm包去),然后添加到路径中,以便可以在不提供整个路径的情况下运行。

答案 1 :(得分:0)

错误的是我的业力模块的git checkin没有完成。

我的.gitignore文件就像这样结束了

!node_modules

但是仍然忽略了与其他忽略模式匹配的子目录中的一些文件。当我们将.gitignore的结尾更改为此

!node_modules/**

然后我们找到了这些文件,提交了它们,它开始工作