错误:您需要包含一些实现__karma __。start方法的适配器
我试图添加一些unit testing到我的一个项目。
到目前为止,我已经安装并configuration了业力,并安装了茉莉花。 我在我的test/
文件夹中有一个testing文件。
业务服务器已经启动,浏览器页面准备就绪,但karma run
失败,如下所示:
$ karma run karma-conf.js [2014-06-14 15:19:11.046] [DEBUG] config - Loading config /foo/test/karma-conf.js Waiting for previous execution... Chrome 35.0.1916 (Linux) ERROR You need to include some adapter that implements __karma__.start method!
这个错误信息不好Google。
这是显而易见的,还是我需要提供更多的信息?
它看起来像这是一个非常普遍的错误,但是在我的情况下,问题是要么我没有运行karma start
从正确的文件夹karma start
,或者我没有重新启动后更改configuration。
我将把这个问题留给公众,希望它能成为其他谁遇到这个错误信息的资源。
如果你命名你的karmaconfiguration文件karma.conf.js
,你可以简单地键入karma start
。
否则指定文件名karma start karmafile.js
(我在正确的目录中,但没有指定文件名。)
你需要在karma-conf.js所在的文件夹中运行你的karma run
或任何function。
在我的情况下,我不得不将文件重命名为karma.conf.js,然后做业力开始
我没有从我的karma.conf.js所在的path运行karma start命令。 我切换到该文件夹并运行相同的命令。 就这样
我有一个karma.conf.js
文件代码格式的问题:
files: [ // Modules ,"client/bower_components/angular/angular.min.js" ,"client/bower_components/angular-mocks/angular-mocks.js" // App ,"client/app/app.module.js" // Test // ,"test/**/*.spec.js" ],
files
数组中的额外逗号会导致此错误:
You need to include some adapter that implements __karma__.start method!
我在运行Angular.js代码库的规范时遇到了这个问题。 我不得不运行npm install karma-jasmine -g
来获得这个工作。
如果你input“karma start”,你必须在当前文件夹中有一个karma.conf.js文件。 或者只是“业力开始/path/ karma.conf.js”
尝试通过“karma init /path/karma.conf.js”创build一个新的karmar.conf.js
我得到了同样的错误,因为该项目使用巴别塔6,我忘了添加babelrc文件。 只是分享,如果这可能有所帮助。
在我的情况下,这个消息实际上是非常具有描述性的:我忘了在我的Jasmine中添加一个适配器到configuration文件中。 从而:
module.exports = function(config) { config.set({ browsers: ['Chrome'], singleRun: true, frameworks: ['jasmine'], files: [ // ... files ... ], // other configs }); };
您需要configuration您的“my.conf.js”文件,因为它包含用于testing代码的所有信息。
所有你需要写的是这样的:
configuration文件可以使用karma init生成:
$ karma init my.conf.js
你想使用哪个testing框架? 按标签列出可能的选项。 进入移动到下一个问题。
茉莉
你想使用Require.js吗? 这将添加Require.js插件。 按标签列出可能的选项。 进入移动到下一个问题。
没有
你想自动捕获浏览器? 按标签列出可能的选项。 input空string移动到下一个问题。
铬
你的源文件和testing文件的位置是什么? 你可以使用全局模式,例如。 “js / *。js”或“test / ** / * Spec.js”。 按Enter键移至下一个问题。
* .js test / ** / *。js
是否应排除以前模式中包含的任何文件? 你可以使用全局模式,例如。 “** / *。SWP”。
按Enter键移至下一个问题。
你想要噶看所有的文件,并在变化上运行testing? 按标签列出可能的选项。
是
在“/Users/vojta/Code/karma/my.conf.js”生成configuration文件。
在我的情况下,我错误地将commonjs预处理程序应用于karma-*
模块,并且来自karma-chrome
和karma-firefox
的adapter.js
以这种方式被破坏。
不幸的是,这是一个非常普遍的错误。
我必须补充说,在我的情况下,业力给了我错误,因为我有一个父文件夹的名称中的[方括号]。
Tt抱怨可能是茉莉花或摩卡的适配器。 要么是适配器丢失,要么是没有正确设置,要么是过时的或错误版本的适配器。
在我的情况下,我有一个旧版本的摩卡2.5.3,这是不符合业力1+。 我更新摩卡依赖于最新版本可用3.2.0和解决的问题。
在处理大量模糊的错误时,我尝试设置basePath:'../',在纠正了其他错误(比如丢失了被描述为对象内容错误的逗号)之后,最后一次改回basePath:',得到了业力。 业力的错误陈述需要大量的工作。 实现这一点并不简单。
FWIW – 采购karma.conf.js
的文件path在本地为我工作,但不在我的jenkins生成器。 我没有任何线索,为什么这是这种情况,但在jenkins它抛出这个错误,除非karma.conf.js
文件是在根目录中,给出了karma命令。 我正在使用rails并通过rake任务运行js规范。 代码是低于这可能会有所帮助的一些。
在我的情况下,问题是业力没有拿起任何文件。 修复它在karma.conf.js解决了这个问题。
同样的问题发生在我身上,这是由于一个过时的模块。
运行npm update
解决了它。
就我而言,这完全不是因果报应! 我使用ES6 / babel从gulp运行业力,实际上有一个代码语法错误,由高于我的业力的babel错误标记:
错误[preprocessor.babel]:xxx.js:意外的标记(19:83)
我确定在我的src和业力再次高兴。
我遇到过同样的问题。 我的浏览器会打开,但在我的terminal上,它抛出了以下错误
30 08 2017 11:19:28.272:INFO [Chrome 58.0.3029 (Linux 0.0.0)]: Connected `enter code here`on socket 5sSs6E5KmpUVRp6LAAAB with id 93886631 Chrome 58.0.3029 (Linux 0.0.0) ERRORSome of your tests did a full page reload!
我检查了我的karma.conf.js文件。 在框架数组中,我包含了jasmine和requirejs。 但是我只安装了karma-jasmine.Removing requireJS并重新开始业务开始工作!
我也一直在努力。 我想到的是,这个错误是由于以下原因之一
- 没有安装或定义testing适配器 ( karma.conf.js中的框架属性
- 找不到karmaconfiguration(例如,在当前dir中没有
karma.conf.js
或在命令中指定没有configuration文件)
我的问题是,我的configuration文件被命名为karma.config.js
而不是karma.conf.js
。
如果您已经安装了testing适配器,但仍然无法正常运行,请尝试运行karma init
并通过指导configuration设置。