我正在尝试使用Jasmine设置Karma来运行AngularJS单元测试,但我无法让测试运行。我确定我忽视了一些简单的事情。我在安装了Node.js
并通过npm
安装了karma的Windows 7计算机上运行此功能。
我的目录结构如下所示:
- js / app / - 包含控制器,app等
- js / config / - 包含karma.conf.js
- js / lib / - 包含angular
- 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
答案 0 :(得分:9)
我在不同的设置(Linux,QUnit,Firefox)中遇到了同样的问题。在我杀死所有业力流程并做了一个新的karma start
后,问题就消失了。
答案 1 :(得分:8)
我有face palm moment。 karma start
需要与karma.conf.js
文件在同一目录中运行。
答案 2 :(得分:7)
此错误可能意味着浏览器无法找到服务器。检查您是否可以通过它提到的URL访问服务器。它可能是配置错误的端口号,甚至(就像我的情况一样),localhost
配置错误。我想可能是服务器没有运行,或者是其他十几个问题。
检查您是否可以手动访问服务器。如果你不能,那就解决这个问题。
答案 3 :(得分:1)
当我的代码中出现无限循环时,这发生在我身上。注释掉(在jasmine中使用xdescribe
)我写的最新代码再次运行测试。
答案 4 :(得分:1)
我遇到了同样的问题,没有代码更改,只是重新运行一个月前运行的测试。
当我从webstorm
跑出来时,似乎需要很长时间来捕获浏览器,所以我想知道它是否超时。
所以我尝试将浏览器设置为Chrome
(我也使用phantomjs
)并等待。然后重置回Chrome
和PhantomJS
,现在没问题。
答案 5 :(得分:1)
我遇到了同样的问题并尝试了很多我发现的建议解决方案,但最终为我解决的是删除node_modules文件夹并通过npm install获取所有新内容。
同样的问题:Karma - Chrome failed 2 times (cannot start). Giving up
答案 6 :(得分:1)
在我的情况下,环境变量CHROME_BIN
设置为错误的路径。固定值(可能在/etc/environment
中定义)或使用unset CHROME_BIN
暂时取消设置环境变量。
要查找问题的原因,在Karma的配置文件中设置日志级别以进行调试很有帮助:
logLevel: config.LOG_DEBUG,
答案 7 :(得分:0)
我遇到了同样的问题,我做了所有来自这里的人都没有任何结果。在我的情况下,我没有做init:
C:\Users>cd c:\xampp\htdocs\angularjs-pro\ch07
c:\xampp\htdocs\angularjs-pro\ch07>karma init
Which testing framework do you want to use ?
Press tab to list possible options. Enter to move to the next question.
> jasmine
Do you want to use Require.js ?
This will add Require.js plugin.
Press tab to list possible options. Enter to move to the next question.
> no
Do you want to capture any browsers automatically ?
Press tab to list possible options. Enter empty string to move to the next question.
> Chrome
当我遇到同样的情况时,第二次是我试图做的时候
karma start
位于错误的文件夹中,而不是放在karma init
的位置。
在我修复了widows控制台中出现的问题之后的两种情况中:
22 11 2016 14:06:51.697:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
22 11 2016 14:06:51.698:INFO [launcher]: Launching browser Chrome with unlimited concurrency
22 11 2016 14:06:51.711:INFO [launcher]: Starting browser Chrome
22 11 2016 14:06:53.936:INFO [Chrome 54.0.2840 (Windows 10 0.0.0)]: Connected on socket /#HnJUQrkRPqtGFa5ZAAAA with id 16058274
答案 8 :(得分:0)
安装karma-cli npm install -g karma-cli
为我解决了这个问题。
希望这会有所帮助。
答案 9 :(得分:0)
我遇到了同样的问题,并通过杀死任务管理器中的所有Chrome实例来解决了这个问题。似乎正在运行“ n”个测试跑步者。当您在不停止服务器的情况下关闭业力测试运行程序时,该实例仍处于活动状态。
因此,按“ alt + ctrl + Delete”,终止所有chrome会话/实例,然后重新启动Karma。
有效!
答案 10 :(得分:0)
我遇到了同样的问题,这是测试中的错误。删除该代码可修复错误。
答案 11 :(得分:0)
我有相同的消息,因为我的PC上没有安装Chrome。只是铬。好吧,事实证明那是不一样的。现在,安装Chrome后,“ Chrome”和“ ChromeHeadless”浏览器都可以启动。
否则,您可以在配置中指定“ Chromium”或“ ChromiumHeadless”,并对此满意。
TLDR:确保已实际安装要测试的浏览器。