我是节点的新手。我正在尝试使用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命令的几种排列,但它们都会产生相同的输出。
如何让它发挥作用?
答案 0 :(得分:0)
D:\tc_a1\work\c4418f0fd0a402a7
上的TeamCity代理的目录结构是什么样的?您的node_modules
文件夹是否存在?
我们让它在TeamCity中运行,并将Karma复制到用户配置文件之外的文件夹(全局安装的npm包去),然后添加到路径中,以便可以在不提供整个路径的情况下运行。
答案 1 :(得分:0)
错误的是我的业力模块的git checkin没有完成。
我的.gitignore
文件就像这样结束了
!node_modules
但是仍然忽略了与其他忽略模式匹配的子目录中的一些文件。当我们将.gitignore
的结尾更改为此
!node_modules/**
然后我们找到了这些文件,提交了它们,它开始工作