【发布时间】:2014-02-02 17:22:31
【问题描述】:
我正在尝试设置 Karma 以使用 Jasmine 运行 AngularJS 单元测试,但我无法运行测试。我确定我忽略了一些简单的事情。我在安装了Node.js 并通过npm 安装业力的Windows 7 机器上运行它。
我的目录结构如下:
- js/app/ - 包含控制器、应用程序等
- js/config/ - 包含 karma.conf.js
- js/lib/ - 包含角度
- js/test/ - 包含茉莉花规格
我正在js 目录中启动命令提示符并运行以下命令:
karma start config/karma.conf.js
这会导致 Chrome 在端口 9876 上运行,但每当我更改任何监视的文件并检查 Karma 输出时,我都会看到以下信息消息:
No captured browser, open http://localhost:9876/
这是我的配置文件:
module.exports = function(config) {
config.set({
basePath: '../',
frameworks: ['jasmine'],
files: [
'lib/angular.js',
'app/**/*.js',
'test/**/*.js'
],
exclude: [
],
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
captureTimeout: 60000,
singleRun: false
});
};
我正在使用 Angular 1.2.10 和 Karma 0.10.9
【问题讨论】:
-
Windows 上的 Karma 似乎存在一些问题:您是否尝试过此处建议的解决方案:github.com/karma-runner/karma/issues/635?它可能与chrome二进制文件的路径有关(Karma只知道默认路径),可能是您的防火墙(尝试禁用它一段时间),您还应该查看您的主机文件。
-
感谢@glepetre,但不幸的是,这些建议都没有奏效。我的主机文件是干净的(新安装的 Windows)并且关闭防火墙没有帮助。我可以让浏览器加载(尝试过 Firefox、Chrome 和 IE),但它只是说
Karma - starting然后在浏览器中没有显示任何进一步的输出。 -
我可以确认同样的问题发生在 Mac 上。我不明白为什么需要为不一定链接到 ui 的单元测试打开浏览器。
-
我认为它们被打开是因为测试框架直接使用了浏览器中的 javascript 运行时引擎。令人沮丧的是它似乎不起作用,但没有人有答案
标签: javascript node.js angularjs karma-runner